我正在使用HighCharts 条形图将 mysql 结果集中的数据绘制成条形图。
现在我的查询结果如下:
Name Expense
-----------------
July 700.0000
August 450.0000
September 1700.0000
HighCharts的series
属性需要以下格式的数据来绘制图形
[
{name:"July",data:[700.0000]},
{name:"August",data:[450.0000]},
{name:"September",data:[1700.0000]}
]
所以我想将我的结果集转换为 JSON 对象,使用json_encode($row)
. 但我得到以下输出:
[{"name":"July","data":"700.0000"},
{"name":"August","data":"450.0000"},
{"name":"September","data":"1700.0000"}]
疑点:
- 有没有办法以与 HighCharts 的系列属性所要求的格式完全相同的格式获取/转换结果集?
我也可以使用在 php 块中创建的对象,直接进入 javascript 吗?假设我从结果集中创建了一个对象
$jsonNameData
。然后我可以在javascript中使用它吗series: <? echo $jsonNameData ?>
编辑:
我能够通过执行以下操作来解决 Q1:
$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
javascript 中的一个变量,但是当我将该变量用作
series: variableName
即使变量具有正确的值(通过警报检查),它也没有正确绘制图形。