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 は系列である必要があります。ただし、 addseries メソッドを呼び出すと、次のエラーが発生します。

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

データはハイチャートが気に入らないようです。アラートをデバッグすると、次のようになります。

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 に答える