2012-01-28 85 views
0

我想使用從PHP動態生成的數據繪製圖表(樣條)。我用於此目的的JavaScript庫是HighCharts。highcharts來自php的動態數據

PHP的產生的格式等

array(
     array("1304294461000",69,"1304899261000",28), 
     array("1304294431000",3,"1304899161000",32) 
) 

值的陣列,其我然後使用json_encode傳遞到一個JavaScript陣列。但是,當我將這些值作爲數據推送時,它似乎不起作用。

例如,下面是相關代碼片段等的例子 -

var namesArr = <?php echo json_encode($namesArr); ?>; 

var progressTrendsData = <?php echo json_encode($progressTrendsData); ?>; 
var chart; 
var options = { 
    chart: { 
     renderTo: 'trendsDiv', 
     type: 'spline' 
    }, 
    series: [{ 
    name: '', 
    data: [] 
    }] 
}; 

for(var i=0;i<namesArr.length;i++) { 
    options.series.push({ 
      name: namesArr[i], 
      data: progressTrendsData[i] 
    }); 
} 

chart = new Highcharts.Chart(options); 

選項包含所需的課程表等相關數據。 但是,上述代碼唯一做的事情是在1月1日的日期繪製單個值,而不管正在推送的實際數據如何。

+1

您的代碼還挺工作。我添加了基於PHP中的內容的值。在這裏看到小提琴:http://jsfiddle.net/larsenmtl/Wstgr/。有一件事,我認爲你的意思是數組是點對[[[1304294461000,69],[1304899261000,28]],[[1304294431000,3],[1304899161000,32]]]或來自PHP數組( array(數組(1304294461000,69),數組(1304899261000,28)), array(array(1304294431000,3),array(1304899161000,32)) ) – Mark 2012-01-28 22:09:53

+0

是的,如果直接分值,否則。 – ChaosMaker 2012-01-29 20:47:24

回答

0

我傾向於同意瓦特/馬克在這個。很難確切地說你的數據應該最終看起來像。試着在高圖demo page上查看ajax數據示例的數據加載部分。

UPDATE:

嘗試以下僞代碼:

var chart; 
var options = { 
    chart: { 
     renderTo: 'trendsDiv', 
     type: 'spline' 
    }, 
    series: [{ 
    name: '', 
    data: [] 
    }] 
}; 

var seriesInfo=[]; 
seriesInfo[0]={"name":"Series A","data":[]}; 
seriesInfo[1]={"name":"Series B","data":[]}; 

//Loop over the series and populate the data 
seriesInfo[0].data.push({x:<insert Series A timestamp>,y:<insert Series A y value>}); 
seriesInfo[1].data.push({x:<insert Series B timestamp>,y:<insert Series B y value>}); 

options.series.push(seriesInfo[0]); 
options.series.push(seriesInfo[1]); 

chart = new Highcharts.Chart(options); 
+0

數據由時間,值對組成 – ChaosMaker 2012-01-29 20:48:50

+0

這些數組格式是固定的還是可以改變的? – malonso 2012-01-31 01:33:05

+0

不,我可以根據需要更改它們 – ChaosMaker 2012-01-31 16:35:29