2013-10-21 24 views
0

所以我終於設法得到一個圖表生成,但問題是,由於某種原因,從JSON數據不顯示 - 即我得到一個空白圖表。JSON輸出爲高圖

在圖表選項我只是有:

series : [{ 
    name: '2000', 
    data: [], 
}] 

AJAX調用看起來是這樣的:

$.ajax({ 
    url : 'data.php', 
    datatype : 'json', 
    success : function (json) { 
     options.series[0].data = json['data']; 
     chart = new Highcharts.Chart(options); 
    }, 
}); 
} 

而且data.php輸出看起來是這樣的:

{"data":[-1.4,-1.4,-1.3,-1.3,-1.3,-1.3,-1.3,-1.2,-1.3,-1.2,-1.2,-1.2]} 

當我嘗試了所有的事情後,我變得絕望了,仍然只是沒有數據的空白圖表。

+0

是否顯示在您的JavaScript控制檯中的任何錯誤?你的ajax調用返回了什麼,它是否會導致'200'與您的php的預期響應? – dm03514

+0

沒有沒有錯誤,我只是不確定是否它確定,如果最後一行data.php是: 回聲json_encode($ rows,JSON_NUMERIC_CHECK); ($ r = mysqli_fetch_array($ x)){ $ rows ['data'] [] = $ r ['Temp']; } 加載數據,實際產生的「回聲」: {「data」:[ - 1.4,-1.4,-1.3,-1.3,-1.3,-1.3,-1.3,-1.2,-1.3, -1.2,-1.2,-1.2]} – Jachym

+0

爲什麼不直接將一些數據硬編碼到series.data中,然後在調用options.series [0]之前嘗試打印json,並查看是否獲得了含有某些數據的圖表 –

回答

1

如果您使用Internet Explorer,那些額外的逗號會導致您的問題。

series : [{ 
    name: '2000', 
    data: [] 
}] 

$.ajax({ 
    url : 'data.php', 
    datatype : 'json', 
    success : function (json) { 
     options.series[0].data = json['data']; 
     chart = new Highcharts.Chart(options); 
    } 
}); 
} 
0

它可能是你的json值返回字符串,但highcharts期待數字。

在你data.php嘗試json_encoding之前輸入的變量:

array_push($myArray, (float)$value); 
return json_encode(myArray); 

如果您highcharts的數據是這樣的:

["-1.4","-1.4","-1.3","-1.3","-1.3","-1.3","-1.3","-1.2","-1.3","-1.2","-1.2","-1.2"] 

它不會渲染,它需要數直線:

[-1.4,-1.4,-1.3,-1.3,-1.3,-1.3,-1.3,-1.2,-1.3,-1.2,-1.2,-1.2]