我正在使用HighCharts条形图将mysql结果集中的数据绘制到条形图中。
现在,我的查询结果如下:
Name Expense ----------------- July 700.0000 August 450.0000 September 1700.0000
seriesHighCharts 的属性需要以下格式的数据才能绘制图形
series
[ {name:"July",data:[700.0000]}, {name:"August",data:[450.0000]}, {name:"September",data:[1700.0000]} ]
所以我想到了使用将结果集覆盖到JSON对象中json_encode($row)。但是我得到以下输出:
json_encode($row)
[{"name":"July","data":"700.0000"}, {"name":"August","data":"450.0000"}, {"name":"September","data":"1700.0000"}]
疑问:
$jsonNameData
series: <? echo $jsonNameData ?>
编辑:
通过执行以下操作,我能够解决第一季度的问题:
$count = 0; $strSeries = "["; while($r = mysql_fetch_assoc($result)) { if($count == 0){ $strSeries .= "{name:'" . $r['name'] . "',"; $strSeries .= "data:[" . $r['data'] . ']}'; $count = 1; } else { $strSeries .= ",{name:'" . $r['name'] . "',"; $strSeries .= "data:[" . $r['data'] . ']}'; } $rows[] = $r; } $strSeries .= "]";
将所需的字符串放入$strSeries。
$strSeries
现在的问题是第二个问题。我将的值分配$strSeries给了javascript中的变量,但是当我将该变量用作
series: variableName
即使变量具有适当的值(通过警报检查),也无法正确绘制图形。
没有机会运行下面的代码,但这应该可以工作或与此非常相似
$series=array(); while($item = mysql_fetch_assoc($result)) { $serie=array( "name" => $item['name'], "data" => array(floatval($item['data'])) ); array_push($series,$serie); } echo json_encode($series);
建议始终坚持json_encode()执行jsonification。您可能需要在参考页上浏览此示例,以了解json_encode如何与特定数组一起工作
json_encode()
编辑: 回答您的第二个问题。您可能在JavaScript控制台中遇到了Highchart错误#14?看看这个问题Highcharts返回错误14
附言:请不要将多个问题混为一谈,分别发布,也要更有效地使用JavaScript控制台和SO搜索等工具