【发布时间】:2015-05-14 08:48:56
【问题描述】:
我需要从我从 mysql 数据库获得的数据中添加点。这时候,我通过json获取数据,但我不知道为什么在输出数组中,数据有这样的双引号(“”):
["{name:'Chip 3',data:[[moment('2015-05-14 13:26:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13
:26:51','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13:27:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14
13:27:51','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13:28:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14
14:42:54','HH:mm:ss').valueOf(),32],]}"]
因此 Highcharts 无法访问数据并在图表上显示数据。现在我需要从数组中删除双引号或做其他事情来使 Highcharts 可以重新调整数据。
这是我在 data.php 文件中的代码,用于获取和更新系列数据。
<?php
header("Content-type: text/json");
include_once 'include/connection.php';
$db = new DB_Class();
$query = "select distinct idchip from datatable ";
$result = mysql_query( $query );
$rows = array();
$count = 0;
$getall = array();
while( $row = mysql_fetch_array( $result ) ) {
$table = array();
$query2 = "select datetime,temperature from datatable where idchip=".$row['idchip'].' group by datetime ';
$dataresult = mysql_query($query2);
while($datarow = mysql_fetch_array($dataresult))
{
$data = '';
$datatimes .= $datarow['0'].',';
$data .= "[moment('".$datarow['0']."','HH:mm:ss').valueOf(),".(integer)$datarow['1']."],";
$stringdata .= $data;
}
$newstring = $stringdata ;
$stringdata = '';
$stringtime = '';
$namedata = "{name:'Chip ".$row["idchip"]."',data:[$newstring]}";
$getall[] = $namedata;
}
echo json_encode($getall);
?>
这是我用来获取 ajax 返回数据的代码。
function getData() {
jQuery.ajax({
url: 'data.php',
type: 'GET',
dataType: 'json',
mimeType: 'multipart/form-data',
contentType: false,
cache: false,
processData: false,
success: function( data, jqXHR ) {
if( data == "null" ) {
} else {
$.getJSON("data.php", function(json) {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'spline',
events: {
// load: requestData
}
},
series: json
});
});
}
},
error: function( textStatus ) {
console.log(" error. damm. ");
//console.log(error);
}
});
}
【问题讨论】:
-
问题在于您在 php.ini 中构造 json 对象的方式。请查看此json。您不必创建 json 字符串。您需要创建最终数组,然后只需使用 json_encode($getall);就可以了
-
@irfanrasool 问题是如果我通过 json 数组添加,我无法在数组中添加 [moment(...)] 或类似的东西。你能告诉我怎么做吗?
-
一般在json中不能使用函数,因为不会运行/评估,所以irfan rasool的建议是正确的。
-
@SebastianBochan 你能在这个链接上帮助我吗,我有一个正确的方向可以遵循,:D。 stackoverflow.com/questions/30233041/…
-
您的链接与当前主题相同。
标签: javascript php mysql json highcharts