rishatss
@rishatss
Simple Developer ^)

Как решить проблемы с парсингом элементов из JSON формата?

Добрый день господа :)
Вообщем на уровне PHP получаем array и переводим его в JSON формат.
Далее запрашиваем страницу с JS кодом и парсим этот JSON формат.
На выводе должно быть что-то типа такого:
https://www.w3schools.com/js/tryit.asp?filename=tr...

Но у меня на выходе как-то пусто.
В чем может быть проблема?
Исходники:
PHP (JSON encode)
<?php
require_once 'connection.php'; // подключаем скрипт с коннектом
// подключаемся к серверу ( БД )
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка подключения к базе :) " . mysqli_error($link));

// выполняем операции с базой данных
$query ="SELECT * FROM windspeed WHERE time >= now() - INTERVAL 1 DAY;";
$result = mysqli_query($link, $query) or die("Ошибка =======   " . mysqli_error($link));
// закрываем подключение
mysqli_close($link);
$arrays = array();
$arraydone = array();
foreach ($result as $element)
{
    array_push($arrays,$element);
}
foreach ( $arrays as $array ) {


    foreach ( $array as $key => $value ) {
        if ($key == 'speed')
        {
            array_push($arraydone,$value);
        }
    }

    echo '</dl>';
}
echo json_encode($arraydone);
?>

JS (парсим JSON и переводим в array )

<!DOCTYPE html>
<html>
<body>

<h2>Get data as JSON from a PHP file, and convert it into a JavaScript array.</h2>

<p id="demo"></p>

<script>

    var xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            var myObj = JSON.parse(this.responseText);
            document.getElementById("demo").innerHTML = myObj[2];
        }
    };
    xmlhttp.open("GET", "test.php", true);
    xmlhttp.send();

</script>

</body>
</html>


Вывод test.php

["6","5","4"]
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
@BorisKorobkov Куратор тега PHP
Web developer
Прекрасно парсится:
JSON.parse('["6","5","4"]');

Update:
Вывод test.php
["6","5","4"]

Вранье!
Там есть еще какой-то мусор echo '</dl>';. Очевидно, что это невалидный json.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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