02.08.2019, 10:30
|
Интересующийся
|
|
Регистрация: 28.05.2019
Сообщений: 23
|
|
Ошибка json - Правильность обработки
Добры день, не могу разобраться в чем проблема.
в теле HTML есть
<div class="col-12" id="outt">
в который выводятся последних 5 записей
Сверху страницы форма, которая добавляет через add_db.php запись в БД и формирует сразу новый запрос переводя его в формат json
Вопрос: почему-то возникает ошибка и не обрабатывает для вывода этот код ( причем json ответ идет нормальный)
{message: "Все хорошо", realty: {…}}
message: "Все хорошо"
realty: {area: Array(7), price: Array(7), address: Array(7), larea: Array(7), floor: Array(7), …}
__proto__: Object
Если ставлю в коде имя класса outt, куда мне нужно произвести вывод, то возникает ошибка.
Uncaught TypeError: Cannot read property 'area' of null
at HTMLDivElement.<anonymous> ((index):279)
at HTMLDivElement.<anonymous> (jquery.js?ver=1.12.4:3)
at Function.each (jquery.js?ver=1.12.4:2)
at a.fn.init.each (jquery.js?ver=1.12.4:2)
at Ha (jquery.js?ver=1.12.4:3)
at a.fn.init.append (jquery.js?ver=1.12.4:3)
at Object.success ((index):277)
at i (jquery.js?ver=1.12.4:2)
at Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4:2)
at y (jquery.js?ver=1.12.4:4)
jQuery(document).ready(function() {
jQuery(".buttonadd").bind("click", function() {
var name = jQuery('.nameField').val();
var area = jQuery('.areaField').val();
jQuery('.nameField').val('');
jQuery('.areaField').val('');
jQuery.ajax({
url: "add_db.php",
type: "POST",
data: {name:name, area:area},
dataType: "json",
success: function(result) {
if (result){
jQuery('#outt div').remove();
jQuery('#outt').append(function(){
var res = '';
for(var i = 0; i < result.realty.area.length; i++){
res += '<div>' + result.realty.link[i] + ' ' + result.realty.title[i] + '</div>';
}
return res;
});
console.log(result);
}else{
alert(result.message);
}
return false;
}
});
return false;
});
});
Последний раз редактировалось eLDeR, 02.08.2019 в 10:39.
|
|
02.08.2019, 10:46
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
Для проверки валидности. берёте свой json из http ответа(если такой есть) и проверяете каким-нибудь онлайн сервисом, например: https://jsonformatter.curiousconcept.com/
Самый просто и быстрый способ
__________________
.
|
|
02.08.2019, 11:09
|
Интересующийся
|
|
Регистрация: 28.05.2019
Сообщений: 23
|
|
Дело в том что я использую WordPress и ответ возвращается только для зарегистрированным пользователям.
Если в форму перекинуть запрос то будет Json ответ такой
{"message":"\u0412\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e","realty":{"a rea":["5","123","30 \u0421\u043e\u0442\u043e\u043a","8 \u0421\u043e\u0442\u043e\u043a","70","64","144"],"price":["5","123","14500000","1300000","12800000","9800000 ","2340560"],"address":["5","123","\u0411\u0430\u0440\u044b\u0431\u0438\u0 43d\u043e, \u0443\u043b. \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u 0435\u0441\u043a\u0430\u044f","\u041e\u043b\u044c\ u0433\u0438\u043d\u043e","\u041b\u0443\u0433\u0430 \u043d\u0441\u043a\u0430\u044f \u0434.4","\u0421\u043e\u0440\u043d\u0435\u0447\u0 43d\u0430\u044f 4","\u041a\u043e\u043d\u043e\u0431\u0435\u0435\u04 32\u043e, \u0420\u044f\u0437\u0430\u043d\u0441\u043a\u0430\u 044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c, \u0428\u0430\u0442\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d"],"larea":["5","123","240","140","56","45","100"],"floor":["5","123","2","2","9","4",""],"content":["5","123","\u041a\u043e\u0442\u0442\u0435\u0434\u0 436\u00a0\u041a\u043e\u0442\u0442\u0435\u0434\u043 6\u00a0\u041a\u043e\u0442\u0442\u0435\u0434\u0436\ u00a0\u041a\u043e\u0442\u0442\u0435\u0434\u0436"," \u0423\u0447\u0430\u0441\u0442\u043e\u043a \u0441 \u0434\u043e\u043c\u043e\u043c\u00a0\u0423\u0447\u 0430\u0441\u0442\u043e\u043a \u0441 \u0434\u043e\u043c\u043e\u043c","\u041e\u043f\u043 8\u0441\u0430\u043d\u0438\u0435\u00a03\u0445 \u043a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u 0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b", "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\ u00a02\u0445 \u043a\u043e\u043c\u043d\u0430\u0442\u043d\u043e\u 0439 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b", "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0 435 \u0434\u043e\u043c\u0430"],"title":["555","123","\u041a\u043e\u0442\u0442\u0435\u0434\ u0436","\u0423\u0447\u0430\u0441\u0442\u043e\u043a \u0441 \u0434\u043e\u043c\u043e\u043c","3\u0445 \u043a\u043e\u043c\u043d\u0430\u0442\u043d\u0430\u 044f \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430", "2\u0445 \u043a\u043e\u043c\u043d\u0430\u0442\u043d\u0430\u 044f \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u0430", "\u0417\u0430\u0433\u043e\u0440\u043e\u0434\u043d\ u044b\u0439 \u0434\u043e\u043c"],"link":["https:\/\/ka4an.ru\/realty\/555\/","https:\/\/ka4an.ru\/realty\/123\/","https:\/\/ka4an.ru\/realty\/kottedzh\/","https:\/\/ka4an.ru\/realty\/uchastok-s-domom\/","https:\/\/ka4an.ru\/realty\/3x-komnatnaya-kvartira\/","https:\/\/ka4an.ru\/realty\/2x-komnatnaya-kvartira\/","https:\/\/ka4an.ru\/realty\/zagorodnyj-dom\/"]}}
|
|
02.08.2019, 11:11
|
Интересующийся
|
|
Регистрация: 28.05.2019
Сообщений: 23
|
|
Как мне его обработать по другому ?
|
|
02.08.2019, 11:26
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
eLDeR,
success: function(result) {console.log(result); }
Сообщение от Skipp
|
если такой есть
|
что в result?
|
|
02.08.2019, 12:09
|
Интересующийся
|
|
Регистрация: 28.05.2019
Сообщений: 23
|
|
В обработчике последние строчки в add_db.php вот такие:
$out = array(
'message' => $message,
'realty' => $realty_out
);
header('Content-Type: text/json; charset=utf-8');
echo json_encode($out);
Может быть тут и надо присвоить result переменную?
и какой командой мне проверить что сейчас передается в result ?
Последний раз редактировалось eLDeR, 02.08.2019 в 12:11.
|
|
02.08.2019, 12:31
|
Интересующийся
|
|
Регистрация: 28.05.2019
Сообщений: 23
|
|
Ответ [object Object]
Если оставить только
Код:
|
if (result){
console.log(result);
} |
То мы увидим что в консоле следующее
Код:
|
{message: "Не удалось записать и извлечь данные", realty: null}
{message: "Все хорошо", realty: {…}} |
|
|
02.08.2019, 12:43
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от eLDeR
|
Если в форму перекинуть запрос то будет Json ответ такой
|
{" a rea":["5","123","30 - проверить, если это не результат форматирования на форуме, то это и есть причина ошибки.
|
|
02.08.2019, 13:33
|
Интересующийся
|
|
Регистрация: 28.05.2019
Сообщений: 23
|
|
По логу видно что result принимает данные
Подскажите как их вывести ? может я их неправильно вывожу ?
|
|
|
|