#javascript #php #jquery #json #ajax
#javascript #php #jquery #json #ajax
Вопрос:
Вот что происходит. У меня есть ошибка в моем Ajax-коде, которая вызывает следующую ошибку:
Неожиданный конец ввода JSON ajax
Вот мой код:
Я получаю данные из массива, выполняя следующие действия:
echo json_encode($departTickets);
Затем я анализирую JSON, выполняя следующие действия:
$("[data-department-id]").click(function() {
id = $(this).attr('data-department-id');
$.ajax({
type: 'POST',
data : {
'id' : id
},
url:"/desk/template/fetchtickets.php",
success: function (res) {
var data = jQuery.parseJSON(res);
for (var jsonId in data) {
$('#department_' id).html(jsonId);
}
}
});
});
Исходя из кода, что может быть причиной проблемы?
Спасибо, Кевин Дэвис
Комментарии:
1. простая отладка, что вы получаете
console.log(res)
?2. Возможно, ваш JSON недействителен. Попробуйте записать ответ в журнал и использовать валидатор jsonformatter.curiousconcept.com для того, чтобы убедиться в этом.
3. Я использовал console.log(res), и по какой-то причине я ничего не получаю.
4. @Kevin возможно, ваш идентификатор неверен… сделайте простой
echo 'works';
и посмотрите, получаете ли вы егоconsole.log(res);
5. Я попробовал. Тем не менее, это работает, однако, когда я выполняю json_encode, ничего не возвращается. Я даже сделал print_r.
Ответ №1:
Номер 1 echo json_encode($departTickets);
— ваша кодировка данных в json.
Затем разбираем его на AJAX, но вы не сказали ajax, что ваш dataType
файл находится в json.
Итак, мы сообщаем ajax следующим образом
$("[data-department-id]").click(function() {
id = $(this).attr('data-department-id');
$.ajax({
type: 'POST',
url:"/desk/template/fetchtickets.php",
dataType: 'json',
data : {
'id' : id
},
success: function (res) {
var data = jQuery.parseJSON(res);
for (var jsonId in data) {
$('#department_' id).html(jsonId);
}
}
});
});
Пожалуйста, обратите внимание, как я изменил положение url и разместил тип данных ниже.
Ответ №2:
Найдено решение..
Сначала вот как я нашел решение.
Я использовал следующую команду:
echo json_last_error_msg();
Тогда это была проблема с кодировкой данных, поэтому я сделал следующее:
$departTickets = mb_convert_encoding($departTickets, 'UTF-8', 'UTF-8');
echo json_encode($departTickets);
Проблема решена.