1

我尝试从员工那里获取几组数据,并通过 HighCharts 将它们绘制出来。在用户点击之前我不知道公司,所以我通过 ajax 了解所有员工及其数据(积分)。

我有一个选择框,我可以在其中选择公司。完成后,我通过 AJAX/jQuery 调用服务器以获取添加到 HighChart 的数据:

    $("#company").change(function(){     
            $.ajax({
                type: 'POST',
                dataType: 'json',
                url: xxxxx,
                async: false,
                data: { company: company},
                success: function(data) {
                     $.each(data, function(val, text) {
                        alert (val);
                        alert (text);
                        chart2.addSeries({
                            name: val,
                            data: text
                        });
                    });   
                }
            ...

我通过 Firebug 从服务器获得的数据是这样的:

{"Employee1":[["1356908400000","10.00"],["1359586800000","11.00"],  ["1362006000000","12.00"],["1364684400000","13.45"]],"Employee2":[["1356908400000","10.00"],["1359586800000","11.00"],["1362006000000","12.00"],["1364684400000","13.45"]]}

Employee1 和 Employee2 应该是系列。但是,当我调用 adderies 方法时,我收到此错误:

Uncaught Highcharts error #14: www.highcharts.com/errors/14 

似乎数据不喜欢 Highcharts。当我通过警报进行调试时,我得到了这个:

alert (val)->Employee1
alert (text)=1356908400000,10.00,1359586800000,11.00,1362006000000,12.00,1364684400000,13.45

当我在没有 ajax 的情况下放置数据时,此示例运行良好。

任何想法?

4

1 回答 1

0

我找到了答案:-)

text 是一个数组,所以我需要另一个 $.each 来读取它并格式化结果:

success: function(data) {
                    $("html").css('cursor','auto');
                    $.each(data, function(val, text) {
                        counter = 0;
                        $.each(text, function() {
                            if (counter==0) {
                                employee_data=  "[" + this + "]";
                            }
                            else{
                                employee_data= employee_data + "," + "[" + this + "]";
                            }
                            counter=1
                        });

                        employee_data = "["+ + "]";
                        chart.addSeries({
                            name: val,
                            data: employee_data
                        });
                    });   
                },
于 2013-08-11T09:23:15.107 回答