преобразовать набор результатов mysql в объект (имя, данные) для передачи в HighCharts
я использую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)
.
But I got the following output:
[{"name":"July","data":"700.0000"},
{"name":"August","data":"450.0000"},
{"name":"September","data":"1700.0000"}]
Doubts:
Is there a way to get/convert the resultset in exactly the same format as is required by the series property of HighCharts?Also can I use an object of created in the php block, directly into the javascript? Say I create an object $jsonNameData
out of my resultset. Then can I use it in the javascript as
series: <? echo $jsonNameData ?>
EDIT:
Я смог решить 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
Он не строит график должным образом, даже если переменная имеет правильное значение (проверено с помощью оповещения).