2014-07-09 15 views
0

我正在構建一個儀表板,我想直接將數據庫中的信息顯示到Chart.js。通過AJAX JSON提供Chart.js數據無效?

我創建了Ajax,它返回了正確的數據。我已經把它們放在下面的代碼中:

$.ajax({ 
    type: 'GET', 
    url: "http://localhost/cwwa/web/app.php/AJAX/dashboard/", 
    contentType: "application/json", 
    success: function(json) { 

     var ChartData = json.enviFig; 

     var oacData = [ 
      $.each(ChartData, function(i, item) { 
       { 
        value: ChartData[i].totalTonne; 
        color: "#F7464A"; 
        highlight: "#FF5A5E"; 
        label: ChartData[i].wasteType; 
       } 
      }) 
     ]; 

     var rCM = document.getElementById("recycledChartMain").getContext("2d"); 

     var recycledChartMain = new Chart(rCM).Pie(oacData); 

    } 

}); 

但是,當頁面加載時,圖形不會出現。 Firebug的沒有錯誤但是,只有與該chart.js之文件,這個警告:

帆布:嘗試的StrokeStyle或填充樣式設置爲一個 既不是字符串,一個CanvasGradient或CanvasPattern值被忽略了。

什麼錯?

回答

1

您填充oacData的方式聽起來不對。我期望這樣:

var oacData = []; 
$.each(ChartData, function(i, item) { 
    oacData.push(
     { 
      value: ChartData[i].totalTonne, 
      color: "#F7464A", 
      highlight: "#FF5A5E", 
      label: ChartData[i].wasteType 
     } 
    ); 
}); 
+0

它拋出一個錯誤,說它在'wasteType'後面缺少'}',但將';'更改爲','移除此錯誤,所以現在它運行時沒有錯誤。但是圖表不顯示? – mickburkejnr

+0

代碼已更正,在對象內部應使用逗號,而不是分號。 – Christophe

0

現在oacData是數組內的一個數組內的對象。 這就是Chart.js無法解析數據的原因。 只是省略了括號,如:

var oacData = $.each(ChartData, function(i, item) { 
       { 
        value: ChartData[i].totalTonne; 
        color: "#F7464A"; 
        highlight: "#FF5A5E"; 
        label: ChartData[i].wasteType; 
       } 
      }); 

,你將不得不使用對象的數組。