【问题标题】:Return type array in jqueryjQuery中的返回类型数组
【发布时间】:2014-05-23 06:37:01
【问题描述】:

我在 codeigniter 函数中有和 ajax 请求,我只是像 echo json_encode($array) 这样回显结果数组。我想要做的是将 ajax 的返回值作为一个数组捕获,我将在图表中使用该数组(我使用 Highcharts)作为一个系列。但是这段代码没有任何反应:

    var data2 = [];
    url = base_url+"/codeigniter/index.php/AssistanceMonitoringModule/assistanceMonitoring/getSeries";

        $.ajax(
        {
        type: "GET",
        url: url,
        data: "query="+query,
        success: function(data){
            alert(data);
            //data2 = data;
        },
        dataType: "json",
        error: function (xhr, ajaxOptions, thrownError) {
            alert("XHR:"+xhr.status+"Error:"+thrownError);
          }

        });

在我的 HIghchart 中是这样称呼它的:

$('#columnChart').highcharts({
            chart: {
                type: 'column'
            },
            title: {
                text: 'Fruit Consumption'
            },
            xAxis: {
                categories: ['May 01', 'May 02', 'May 03', 'May 04', 'May 05', 'May 06', 'May 07', 'May 08', 'May 09', 'May 10', 'May 11', 'May 12', 'May 13', 'May 14','May 15','May 16', 'May 17', 'May 18', 'May 19', 'May 20']
            },
            yAxis: {
                title: {
                    text: 'Fruit eaten'
                }
            },
            series: data2
        });

我使用 data2 作为数组,因为我说过什么都没有发生。 :) 感谢您的帮助。

【问题讨论】:

    标签: php jquery arrays codeigniter highcharts


    【解决方案1】:

    您可以定义新函数来初始化和调用highcharts插件onSuccess ajax, 试试这个方法

      $.ajax(
        {
        type: "GET",
        url: url,
        data: "query="+query,
        success: function(data){
            //alert(data);
            //data2 = data;
            callHighChart(data);
        },
        dataType: "json",
        error: function (xhr, ajaxOptions, thrownError) {
            alert("XHR:"+xhr.status+"Error:"+thrownError);
          }
    
        });
    
    function callHighChart(data){
             $('#columnChart').highcharts({
                chart: {
                    type: 'column'
                },
                title: {
                    text: 'Fruit Consumption'
                },
                xAxis: {
                    categories: ['May 01', 'May 02', 'May 03', 'May 04', 'May 05', 'May 06', 'May 07', 'May 08', 'May 09', 'May 10', 'May 11', 'May 12', 'May 13', 'May 14','May 15','May 16', 'May 17', 'May 18', 'May 19', 'May 20']
                },
                yAxis: {
                    title: {
                        text: 'Fruit eaten'
                    }
                },
                series: data // ajax response;
            });
    }
    

    【讨论】:

    • 这是因为只有在 ajax 成功调用后才会填充数据
    • 我可以有一个后续问题,如果我想执行多个 ajax 请求并且在我已经提供了图表所需的数据(例如标题、xAxis、 y轴和系列信息?有可能吗,因为类别实际上不是一个常数值。我试图声明全局变量,但没有工作。
    • 你应该在callHighChart(data, category,....., n)函数中使用传递多个参数,并在highChart插件中使用它们
    • 如果是这种情况,我不能在传递 callHighChart 之前执行多个 ajax 来准备我的数据吗?因为当我将数据存储到空变量并在 ajax 的结束冒号之后调用函数时,我的图表没有响应。
    猜你喜欢
    • 1970-01-01
    • 2021-05-07
    • 2021-02-17
    • 2021-02-14
    • 2014-05-16
    • 1970-01-01
    • 2015-09-13
    • 2014-08-23
    • 2012-12-21
    相关资源
    最近更新 更多