Вместо тысячи слов:
<style>
.stats{
display: inline-block;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<div id="id" class="stats"></div> <div id="status" class="stats"></div>
<!-- [{"status_id":"1","status":"1","status_text":"Working","percentage":"100","additional_info":"","last_log_time":"2016-01-24 12:47:52"}] -->
<script>
function show_status()
{
$.ajax({
url: "get_status.php",
method: "POST",
data: { show_status: "true" },
cache: false,
success: function(html){
//$("#status").html("status is:" + html);
alert(html);
var obj = jQuery.parseJSON(html);
alert(obj.status_text);
$("#status").html(obj.status_text);
$("#id").html(obj.id);
}
});
}
$(document).ready(function(){
show_status();
setInterval('show_status()', 5000);
});
</script>
Первый алерт нормально выводит json-строку, но после парсинга второй алерт выводи undefined. Почему так происходит и как правильно это сделать? Спасибо.
[{"status_id":"1","status_text":"Working"}]
Обратите внимание на внешние квадратные скобки, они означают, что у вас массив, содержащий один объект. Соответственно обращение должно идти как:
alert(obj[0].status_text);
Или, если вы уверены, что элемент всегда один, делайте так:
var obj = jQuery.parseJSON(html)[0];
alert(obj.status_text);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть на сервере изображение с прозрачным фоном, надо сделать так, чтобы фон стал белым, пытаюсь так: