我正在尝试绘制一个来自我的sql数据库的highcharts,我正在用getdata.php?id=allTemp查询这个数据库。我对JSON了解不多,但到目前为止,我已经组装了下面的代码,图表甚至没有绘制出来。当我得到一个像weather.wesleyweisenberger.com/getdata.php?id=humidity,这样的变量时,$.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>
发布于 2018-06-07 05:49:20
{...}{...}{...}
这是一个无效的json模式。您之所以得到这个结果,是因为您正在回显多个json对象,其中的响应需要一个单独的json对象。您可以通过仅回显一次来纠正此问题。
$results = array();
while($data = $result->fetch_assoc()){
array_push($results, $data);
}
echo json_encode($results);
发布于 2018-06-07 05:48:41
Highchart使用数组来填充其数据,您只是并排返回了许多对象,没有实际可接受的格式,现在使用下面的代码,您将打印一个串行化的对象数组。
在你的PHP上试试这个:
var $stringToReturn = [];
while($data = $result->fetch_assoc()){
push($stringToReturn, $data);
}
echo json_encode($stringToReturn);
https://stackoverflow.com/questions/50730065
复制相似问题