ddimonn8080
@ddimonn8080

Почему выдает ошибку?

Здравствуйте. В обработчике формы обратной связи формируется массив с ошибками:
$errorValidation['nameShort'] = '<label id="name-error" class="error" for="name">Имя не должно содержать меньше 2 символов</label>';
echo json_encode($errorValidation);


на клиенте:
success: function(data){

	var result = jQuery.parseJSON(data);

	$.each(result, function(key, value){
		value = value;
		if ( key.indexOf('name') == 0 ) {
			$form__wrapper.find('input[name="name"]').next(value);
		}
	});

Выдает ошибку: Error: Syntax error, unrecognized expression: Имя не должно содержать меньше 2 символов

В чём ошибка?

Спасибо.
  • Вопрос задан
  • 153 просмотра
Решения вопроса 2
kpa6uu
@kpa6uu
Программист Талибана [Пыхерский Алибаба]
Попробуйте заюзать JSON.parse вместо jQuery.parseJson, кроме этого установите второй аргумент функции json_encode (чтобы получилось json_encode($errorValidation, true))
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега PHP
frontend developer
dataType в настройках ajax указан?
с каким заголовком приходит ответ от сервака? должен быть application/json
И тогда вам не нужно будет делать jsonParse, jquery передаст в колбэк уже распарсенный объект.

Ну или проверяйте, что вам там передается, если хотите не зависеть от настроек (у вас, скорее всего как раз распарсенный объект и приходит)

if (typeof data == 'string') {
  data = JSON.parse(data);
}
var result = data;
...


И приучайтесь пользоваться консолью.
Быстренько сделали console.log(data); и увидели что вам пришло. И не тратили бы время на тостер.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы