HighCharts 棒グラフを使用して、mysql 結果セットのデータを棒グラフにプロットしています。
クエリの結果セットは次のようになります。
Name Expense
-----------------
July 700.0000
August 450.0000
September 1700.0000
series
HighChartsのプロパティは、グラフをプロットするために以下の形式のデータを必要とします
[
{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
。
さて、問題は2番目の質問です。$strSeries
の値をjavascriptの変数に割り当てましたが、その変数を次のように使用すると
series: variableName
変数が適切な値を持っていても (アラートでチェック)、グラフが正しくプロットされていません。