converter o resultado do mysql em um objeto (nome, dados) para ser alimentado no HighCharts
estou usandoGráfico de barras HighCharts plotar dados do resultado do mysql em um gráfico de barras.
Agora o conjunto de resultados da minha consulta é o seguinte:
Name Expense
-----------------
July 700.0000
August 450.0000
September 1700.0000
oseries
propriedade de HighCharts requerem dados no formato abaixo para plotar o gráfico
[
{name:"July",data:[700.0000]},
{name:"August",data:[450.0000]},
{name:"September",data:[1700.0000]}
]
Então pensei em converter meu conjunto de resultados em um objeto JSON usandojson_encode($row)
. Mas eu tenho a seguinte saída:
[{"name":"July","data":"700.0000"},
{"name":"August","data":"450.0000"},
{"name":"September","data":"1700.0000"}]
Dúvidas
Existe uma maneira de obter / converter o conjunto de resultados exatamente no mesmo formato exigido pela propriedade de série de HighCharts?Também posso usar um objeto criado no bloco php, diretamente no javascript? Digamos que eu crie um objeto$jsonNameData
fora do meu resultado. Então eu posso usá-lo no javascript como
series: <? echo $jsonNameData ?>
EDITAR:
Consegui resolver o Q1 fazendo o seguinte:
$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 .= "]";
Tem a string necessária em$strSeries
.
Agora o problema é a segunda questão. Eu atribuí o valor de$strSeries
para uma variável em javascript, mas quando eu uso essa variável como
series: variableName
Não está plotando o gráfico corretamente, mesmo que a variável tenha valor adequado (verificado por meio de alerta).