У меня есть данные JSON по API, как показано ниже ВЫХОД:
[[{"first":1}],[{"last":0}],[{"other":4}]]
Мой код Ajax:
setInterval(function() {
$.getJSON('/ytl/public/api/first-hour-trades', function(data) {
$.each(data, function(firstHourTrades, element) {
$("#msg1").append($('<div>', {
text: element.first
}));
$("#msg2").append($('<div>', {
text: element.last
}));
$("#msg3").append($('<div>', {
text: element.other
}));
});
});
}, 10000);
<div class = "row">
<div class = "col-6 col-sm-4">
<p id='msg1'> first hour trades</p>
</div>
<div class = "col-6 col-sm-4">
<p id='msg2'> last hour trades</p>
</div>
<!-- Force next columns to break to new line at md breakpoint and up -->
<div class = "w-100 d-none d-md-block">
<p id='msg3'> other hours trade</p>
</div>
</div>
Вывод ajax - ничего. Думаю, проблема в моем результате в формате JSON, но что делать и как ее решить?
МОЙ КОД:
$data = [$first_hour,$last_hour,$other_hours];
return response()->json($data );
попробуйте использовать echo вместо return
Есть ли сообщение об ошибке в консоли разработчика?
Alos никогда не использует интервал в Ajax - вместо этого используйте setTimeout из обработчика успеха
Включены ли ошибки PHP? Вы можете получить 500 и не увидеть этого
Согласно вашему сообщению, данные представляют собой массив массивов. Если это так, это должен быть element[0].first и т. д., А не просто element.first.
эхо дает тот же результат. @MasivuyeCokile
Да, это массив, но как я могу удалить массив массивов. Я покончил с element[0].first, который не дает результата @Pointy
Как я могу установить Timeout обработчиком, вы можете мне помочь? @mplungjan
function callIt() { $.getJSON('/ytl/public/api/first-hour-trades', function(data) { setTimeout(callIt,10000); $.each(data, function(firstHourTrades, element) { $("#msg1").append($('<div>', { text: element.first })); $("#msg2").append($('<div>', { text: element.last })); $("#msg3").append($('<div>', { text: element.other })); }); }); }его два трудно понять, вы можете отправить ответ с этим кодом, будет здорово? @mplungjan
Я просто удалил setInterval и поместил вызов в функцию, которую я вызываю успешно. Если есть ошибка JSON, это вам не поможет.
Можете ли вы установить dd($data) на своем контроллере, а затем сказать мне значение?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Использовать это:
JSON.parse(data)
var jsonResult = JSON.parse('[[{"first":1}],[{"last":0}],[{"other":4}]]');
setInterval(function() {
$.each(jsonResult, function(firstHourTrades, element) {
$("#msg1").append($('<div>', {
text: element[0].first
}));
$("#msg2").append($('<div>', {
text: element[0].last
}));
/*
$("#msg2").append($('<div>', {
text: element.last
}));
*/
});
}, 10000);<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class = "row">
<div class = "col-6 col-sm-4">
<p id='msg1'> first hour trades</p>
</div>
<div class = "col-6 col-sm-4">
<p id='msg2'> last hour trades</p>
</div>
</div>это тоже не дает результата.
Хорошо, позволь мне попробовать. @Rogerio
JSON, а не Джейсон