2013-04-24 84 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

回答