преобразовать набор результатов 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)
, Но я получил следующий вывод:
[{"name":"July","data":"700.0000"},
{"name":"August","data":"450.0000"},
{"name":"September","data":"1700.0000"}]
Сомнения:
Есть ли способ получить / преобразовать набор результатов в том же формате, который требуется для свойства серии HighCharts?Также я могу использовать объект, созданный в блоке php, непосредственно в JavaScript? Скажи я создаю объект$jsonNameData
из моего набора результатов. Тогда я могу использовать его в JavaScript как
series:
РЕДАКТИРОВАТЬ:
Я смог решить 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
Он не строит график должным образом, даже если переменная имеет правильное значение (проверено с помощью оповещения).