2016-11-15 106 views
1

我使用從ajax通過php傳遞的數組有問題。 我需要將數據放入Chart.js圖表​​中。將Ajax響應數組傳遞給Chart.js

我的阿賈克斯是這樣的:

$.ajax({ 
    url: "/wordpress/wp-admin/admin-ajax.php", 
    method: "POST", 
    data: { action: 'hfwpGetGraph' }, 
    success: function(response) { 
     var myLabels = []; 
     var myData = []; 

     for(var i in response) { 
      myLabels.push(response[i].Date); 
      myData.push(response[i].DiaLevel); 
     } 
     <Chart.js code> 
    } // End Success 
}) // End Ajax 

如果我顯示我的陣列中的每一行,它看起來是這樣的:

[{"ID":"17","UserID":"29","Date":"2016-09-25","Systolic1":"50","Systolic2":"0","Systolic3":"45","Diastolic1":"48","Diastolic2":"0","Diastolic3":"51","SysAverage":"0","DiaAverage":"0","SysLevel":"0","SysText":"","DiaLevel":"0","DiaText":""}, 

如果我顯示「myLabels」或「myData的」他們都顯示:

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 

我在做什麼錯誤....?

注:我的PHP數組傳遞這樣的:

echo json_encode($graphData); 

問候 弗萊明

+0

嘗試訪問(var i在響應[0])並驗證您的響應數組是否正確 –

+0

您是否嘗試使用每個循環,因爲for-in通常用於循環對象 –

+0

「for(var我在迴應[0])「只是給了一個空陣列。 –

回答

0

我用 「成功」 之後增加 「parseJSON」 解決了這個問題。

success: function(response) { 
    var json = $.parseJSON(response); 

但我不明白解決方案的完整概念。 我見過的大多數例子都是通過ajax從php到javascript解析數組(),而不是使用parseJSON轉換。

它們只是處理響應,就好像它已經是一個數組而不是一個字符串。