簡體   English   中英

使用JSON將數據從PHP數組傳遞到Highcharts圖表

[英]Passing data from PHP array to Highcharts chart with JSON

我正在嘗試繪制來自我的SQL數據庫的highcharts圖表,該數據庫是使用getdata.php?id = allTemp查詢的。 我對JSON的了解不多,但到目前為止,我已經在下面匯編了代碼,圖表甚至都沒有繪制。 當我獲得單個變量(例如weather.wesleyweisenberger.com/getdata.php?id=濕度)時,$ .getJSON函數起作用,但是當我嘗試獲取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>

Highchart使用數組來填充其數據,而您只是並排返回了許多對象,沒有實際可接受的格式,現在有了下面的代碼,您將打印一個字符串化的對象數組。

在您的PHP上嘗試一下:

var $stringToReturn = [];

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

echo json_encode($stringToReturn);
{...}{...}{...}

那是無效的json模式。 之所以得到這個,是因為您要回顯多個json對象,其中響應期望一個。 您可以通過僅回顯一次來更正此問題。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM