Передача данных из массива PHP на диаграмму Highcharts с помощью JSON - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь нарисовать диаграмму хай-чартов из моей базы данных sql, которую я запрашиваю с помощью getdata.php? Id = allTemp.Я не очень много знаю о JSON, но я собрал код ниже, и график даже не прорисован.функция $ .getJSON работает, когда я получаю одну переменную, такую ​​как weather.wesleyweisenberger.com/getdata.php?id=humidity, но как только я пытаюсь получить getdata.php? id = allTemp, она не работает, пожалуйста, помогитеменя ...

while($data = $result->fetch_assoc()){
                        echo json_encode($data, JSON_FORCE_OBJECT);
                    }

и возвращаемое значение имеет формат

{"timestamp":"2018-05-30 00:33:05","temperature":"67.39","humidity":"66.57","pressure":"99.21"}{"timestamp":"2018-05-30 00:47:39","temperature":"65.52","humidity":"70.41","pressure":"99.2"}{...

Мой файл index.php читает:

<script>
        $(function(){
            $.getJSON('getdata.php?id=allTemp', function(json){
                $('#container').highcharts({
                    series: [{
                        data: json
                    }],
                    title: {
                        text: 'Title'
                    }
                })
            })
        })
    </script>
    <div id="container" style="width:100%; height:400px;"></div>

Ответы [ 2 ]

0 голосов
/ 07 июня 2018
{...}{...}{...}

Это недопустимый шаблон json.Вы получаете это, потому что вы повторяете несколько объектов JSON, где ответы ожидают один.Вы можете исправить это, только повторив один раз.

$results = array();
while($data = $result->fetch_assoc()){
    array_push($results, $data);
}
echo json_encode($results);
0 голосов
/ 07 июня 2018

Highchart использует массивы для заполнения своих данных, и вы просто возвращаете множество объектов бок о бок, без действительного приемлемого формата, теперь с кодом ниже вы распечатаете массив объектов в виде строки.

Попробуйте это на своем PHP:

var $stringToReturn = [];

while($data = $result->fetch_assoc()){
  push($stringToReturn, $data);
}

echo json_encode($stringToReturn);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...