2016-11-15 108 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转换。

它们只是处理响应,就好像它已经是一个数组而不是一个字符串。