2014-06-11 41 views
3

我在一個大學網站項目中工作,我選擇使用Highcharts,它有一個非常簡單的用法。但我有一些問題與.getjson工作動態更新。在highcharts上動態更新儀表

我用這個http://www.highcharts.com/studies/live-server.htm和這個http://jsfiddle.net/oceog/zpwdp/樣本。 而且我還沒有取得任何成功。然後我試圖通過我自己學習的API,我來到了這一點:

function requestData() { 
    $.jQuery.getJSON('values.php', data, 
     function(){ 
      var series = chart.series[0] 
      chart.series.update() 
      setTimeout(requestData, 1000); 
     } 
)} 

我留在圖表上的數據值空,我在文件中加載requestData,但它仍然不工作。 有人可以幫我嗎? 對不起,我的英語。 謝謝!

+0

如何使你的JSON /數據的模樣? –

+0

數據只是一個數字,php返回給我的就是:[200] –

回答

7

參見本fiddle

var new_value = 160; 
var point = $('#container').highcharts().series[0].points[0];  
point.update(new_value); 

根據你的情況,應該是這樣的:

function requestData() { 
    $.jQuery.getJSON('values.php', data, 
     function(){ 
      var new_value = 160;//the value you wish to update and set to guage 
      var point = $('#div_id_of_chart_rendering').highcharts().series[0].points[0];  
      point.update(new_value); 
     } 
)} 
+0

更新圖表的功能應該在圖表內?我正在用一個事件調用圖表中的另一個函數。 –

0

當您的數據對象返回時,您需要將該數據放入圖表系列中。目前,你沒有對數據對象做任何事情。相關的highcharts API調用是'setData'(http://api.highcharts.com/highcharts#Series.setData)。

你需要做這樣的事情:

function requestData() { 
$.jQuery.getJSON('values.php', data, 
    function(){ 
     chart.series.setData(data) 
     setTimeout(requestData, 1000); 
    } 
)} 

對於這個工作,你的PHP需要返回一系列有效的數據對象(例如一個點的陣列)。

+0

在將values.php中的數據直接設置到圖表之前。它在工作,它給了我一個價值,例如:[210]。 我試過你所說的,但它仍然不起作用。看來我的數據不會上傳到圖表中。該圖表不顯示任何值。 我應該在圖表系列上設置一個變量或類似的東西嗎? –