首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Ajax响应用作数组

将Ajax响应用作数组
EN

Stack Overflow用户
提问于 2013-04-24 20:14:43
回答 1查看 82关注 0票数 0

我正在使用一个名为JSCharts的javascript库来生成折线图、条形图等等。一切都正常运行,我可以提供一个有效的例子:

代码语言:javascript
复制
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();

我的问题是,现在我向一个php文件发出了一个Ajax GET请求,该文件将向我发送以下响应:

代码语言:javascript
复制
['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请求代码:

代码语言:javascript
复制
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

代码语言:javascript
复制
[Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], ... ]

这是一个数组数组,用于myFanRemovesData

代码语言:javascript
复制
["['2013-02-24', 10], ['2013-02-25', 17], ['2013-02-…-04-20', 4], ['2013-04-21', 4], ... "]

我试图将响应转换为数组,但没有明显的成功。我不知道下一步该做什么,所以非常欢迎任何建议和指导。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-24 20:20:21

您的php文件将返回一个字符串。在Jquery中解析它之前,需要将其转换为JSON。

有关更多信息,请查看此教程:http://www.islandsmooth.com/2010/04/send-and-receive-json-data-using-ajax-jquery-and-php/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16191787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档