2013-08-10 5 views
1

Я пытаюсь получить несколько рядов данных от сотрудников и получить их в HighCharts. Я не знаю компанию, пока пользователь не нажмет, так что я получаю корыто ajax всех сотрудников и их данные (точки).Drawind Динамические серии и точки с Highchart и 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 

Кажется, данные не нравится Highcharts. Когда я отладки через предупреждения, я получаю это:

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

Этот пример работает нормально, когда я ставлю данные без AJAX.

Любая идея?

ответ

0

Я нашел ответ :-)

текст представляет собой массив, поэтому мне нужно еще $ .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 
         }); 
        }); 
       }, 
Смежные вопросы