2013-04-24 85 views
0

我正在使用JavaScript库进行定制JSCharts用于生成线,条形图等。一切工作像它应该,我可以提供一个工作示例:使用Ajax响应作为数组

var myData = new Array(['2013-01-24', 117], ['2013-01-25', 91], ['2013-01-26', 90], ['2013-01-27', 128], ['2013-01-28', 168], ['2013-01-29', 169], ['2013-01-30', 146], ['2013-01-31', 48], ['2013-02-01', 66], ['2013-02-02', 48], ['2013-02-03', 90], ['2013-02-04', 138], ['2013-02-05', 77], ['2013-02-06', 55], ['2013-02-07', 79], ['2013-02-08', 63], ['2013-02-09', 35], ['2013-02-10', 63], ['2013-02-11', 90], ['2013-02-12', 80], ['2013-02-13', 48], ['2013-02-14', 62], ['2013-02-15', 71], ['2013-02-16', 52], ['2013-02-17', 95], ['2013-02-18', 69], ['2013-02-19', 94], ['2013-02-20', 119], ['2013-02-21', 725], ['2013-02-22', 1348], ['2013-02-23', 1244], ['2013-02-24', 607], ['2013-02-25', 585], ['2013-02-26', 941], ['2013-02-27', 1466], ['2013-02-28', 1015], ['2013-03-01', 1626], ['2013-03-02', 965], ['2013-03-03', 875], ['2013-03-04', 841], ['2013-03-05', 969], ['2013-03-06', 710], ['2013-03-07', 566], ['2013-03-08', 660], ['2013-03-09', 622], ['2013-03-10', 651], ['2013-03-11', 679], ['2013-03-12', 812], ['2013-03-13', 754], ['2013-03-14', 669], ['2013-03-15', 661], ['2013-03-16', 328], ['2013-03-17', 529], ['2013-03-18', 552], ['2013-03-19', 647], ['2013-03-20', 462], ['2013-03-21', 452], ['2013-03-22', 157], ['2013-03-23', 188], ['2013-03-24', 103], ['2013-03-25', 152], ['2013-03-26', 155], ['2013-03-27', 165], ['2013-03-28', 952], ['2013-03-29', 1135], ['2013-03-30', 915], ['2013-03-31', 996], ['2013-04-01', 400], ['2013-04-02', 204], ['2013-04-03', 145], ['2013-04-04', 164], ['2013-04-05', 1248], ['2013-04-06', 517], ['2013-04-07', 300], ['2013-04-08', 494], ['2013-04-09', 248], ['2013-04-10', 220], ['2013-04-11', 245], ['2013-04-12', 152], ['2013-04-13', 109], ['2013-04-14', 293], ['2013-04-15', 207], ['2013-04-16', 120], ['2013-04-17', 528], ['2013-04-18', 266], ['2013-04-19', 286], ['2013-04-20', 313], ['2013-04-21', 162], ['2013-04-22', 310]); 
console.log("myData: " + Object.prototype.toString.call(myData)); 
var myChart = new JSChart('116376655202954_3months_page_views_chartcontainer', 'line'); 
myChart.setDataArray(myData); 
myChart.setSize(960, 320); 
myChart.setAxisNameX(''); 
myChart.setAxisValuesColorX('#FFFFFF'); 
myChart.setAxisNameY(''); 
myChart.setTitle('Page Views in the last 3 months'); 
Chart.draw(); 

我的问题是,现在我做一个Ajax GET请求发送我作为响应的PHP文件如下:

['2013-02-24', 10], ['2013-02-25', 17], ['2013-02-26', 23], ['2013-02-27', 13], ['2013-02-28', 11], ['2013-03-01', 12], ['2013-03-02', 6], ['2013-03-03', 20], ['2013-03-04', 21], ['2013-03-05', 18], ['2013-03-06', 12], ['2013-03-07', 17], ['2013-03-08', 10], ['2013-03-09', 7], ['2013-03-10', 6], ['2013-03-11', 13], ['2013-03-12', 24], ['2013-03-13', 20], ['2013-03-14', 15], ['2013-03-15', 12], ['2013-03-16', 4], ['2013-03-17', 21], ['2013-03-18', 18], ['2013-03-19', 21], ['2013-03-20', 10], ['2013-03-21', 4], ['2013-03-22', 2], ['2013-03-23', 9], ['2013-03-24', 7], ['2013-03-25', 13], ['2013-03-26', 2], ['2013-03-27', 9], ['2013-03-28', 15], ['2013-03-29', 14], ['2013-03-30', 29], ['2013-03-31', 19], ['2013-04-01', 6], ['2013-04-02', 4], ['2013-04-03', 7], ['2013-04-04', 5], ['2013-04-05', 56], ['2013-04-06', 3], ['2013-04-07', 2], ['2013-04-08', 11], ['2013-04-09', 4], ['2013-04-10', 7], ['2013-04-11', 1], ['2013-04-12', 6], ['2013-04-13', 2], ['2013-04-14', 2], ['2013-04-15', 6], ['2013-04-16', 3], ['2013-04-17', 13], ['2013-04-18', 5], ['2013-04-19', 7], ['2013-04-20', 4], ['2013-04-21', 4], ['2013-04-22', 8] 

这里是我的GET请求代码:

function submitForm(t) { 
    var page_id = String("#" + $(t).attr('id')); 
    $.ajax({type:'GET', url: 'charts.php', data:$(page_id).serialize(), success: 
     function(response) { 
      document.getElementById('<?php echo $account['id']; ?>_fan_removes').style.display = "block"; 
      console.log(response); 
      var myFanRemovesData = new Array(response); 
      console.log(myFanRemovesData); 
      var myChart = new JSChart('116376655202954_fan_removes', 'line'); 
      myChart.setDataArray(myFanRemovesData); 
      myChart.setSize(960, 320); 
      myChart.setAxisNameX(''); 
      myChart.setAxisValuesColorX('#FFFFFF'); 
      myChart.setAxisNameY(''); 
      myChart.setTitle('Page Fan Removes in the last 2 months'); 
      myChart.draw(); 
     }}); 
    return false; 
}; 

我知道响应是一个字符串,我希望它被放置在类似工作的例子,但我不能让它正常工作。的myDatamyFanRemovesData是[对象阵列],但如果使用的console.log上都收到以下: 对于myData

[Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], ... ] 

其是阵列的一个阵列和用于myFanRemovesData

["['2013-02-24', 10], ['2013-02-25', 17], ['2013-02-…-04-20', 4], ['2013-04-21', 4], ... "] 

我试图将响应转换为数组,但没有可见的成功。我不知道下一步该怎么做,所以任何建议和指导都会受到欢迎。

+1

最好的办法是包装在一个数组中的PHP的结果,并设置了'dataType'为'ajax'请求作为'json' – dbf 2013-04-24 12:23:20

+1

我猜这不是JavaScript问题,而是更多的PHP问题。修改您的PHP'echo'语句如下:'echo json_encode(variable);'其中**变量**是您呼出的当前值。 – War10ck 2013-04-24 12:23:41

+0

'json_encode'发送给我的每个数组之间“像这样:''['2013-02-24',10]”'我如何用这个? – 2013-04-24 12:42:09

回答