2014-04-04 47 views
0

我想建立基於列highcharts,這裏的數據是我在jQuery代碼:動態列基於highcharts餵養與jQuery和PHP

var options = { 
      chart: { 
       renderTo: 'container', 
       type: 'column' 
      }, 
      credits: { 
       enabled: false 
      }, 
      title: { 
       text: 'PCP Histogram', 
       x: -20 
      }, 
      xAxis: { 
       categories: [{}] 
      }, 
      legend: { 
         layout: 'vertical', 
         align: 'right', 
         verticalAlign: 'top', 
         x: -10, 
         y: 100, 
         borderWidth: 0 
        }, 
      tooltip: { 
         formatter: function() { 
         var s = '<b>'+ this.x +'</b>'; 

          $.each(this.points, function(i, point) { 
          s += '<br/>'+point.series.name+': '+point.y; 
          }); 

          return s; 
         }, 
         shared: true 
       }, 
      series: [{},{}] 
     }; 
        $.ajax({ 
      url: "file.php", 

      type: "post", 
      dataType: "json", 
      success: function(data){ 

       options.xAxis.categories = data.categories; 
       options.series[0].name = 'Avg1'; 
       options.series[0].data = data.avg1; 
       options.series[1].name = 'Avg2'; 
       options.series[1].data = data.avg2; 

       var chart = new Highcharts.Chart(options); 

我正從這樣的文件PHP中的數據: 文件.PHP

$graph_data = array('categories'=>$categories, 'avg1'=>$avg, 'avg2'=>$avg); 

print json_encode($graph_data, JSON_NUMERIC_CHECK); 

這是工作的罰款,每個分類的兩列, 我現在想的是:graph_data可以DATAS平均n個, 所以基本上這將是列數n。

$graph_data = array('categories'=>$categories, 'avg1'=>$avg1, ... 'avgn'=>$avgn); 

當我做手工它的工作原理,但我不知道有多少人會在那裏,所以我想代碼做的我。

任何想法我可以做到這一點? 任何幫助表示讚賞。

回答

2

使平均的陣列,而不必AVG1,AVG2等....

$graph_data = array('categories'=>$categories, 'avgs'=>$array_of_avgs) 

然後在JavaScript端

success: function(data){ 

      options.xAxis.categories = data.categories; 
      for(var i in data.avgs){ 
       options.series[i].name = 'Avg'+i; 
       options.series[i].data = data.avgs[i]; 
      } 


      var chart = new Highcharts.Chart(options); 

一切都會好起來

+0

嗨,應該如何我定義了上面的系列,當我嘗試你的代碼時,它給出了一個錯誤,無法將屬性'name'設置爲非對象。我認爲圖表選項中的系列是問題。你知道我怎麼修理它嗎? – amol01