Я просматривал множество примеров, но я не могу заставить мой код вытащить данные. Диаграмма пуста.
У меня есть php-файл, который дает следующее: (date, value1, value2)
[ ["2013-09-15 08:44:37",19.8,8.19], ["2013-09-15 08:47:37",18.4,7.81], ["2013-09-15 08:50:37",18.3,7.78], ["2013-09-15 08:53:37",18.1,7.77] ]
Тогда у меня есть следующий код:
<!DOCTYPE html> <head> <script src="js/jquery-1.10.2.min.js"></script> <script src="js/highcharts.js" type="text/javascript"></script> <script> var chart; $(document).ready(function() { var options = { chart: { renderTo: 'container', type: 'line', }, title: { }, xAxis: { type: 'datetime' }, yAxis: { }, series: [{ name: 'val1', data: [] }, { name: 'val2', data: [] }] }; $.getJSON('data_day.php', function(json) { val1 = []; val2 = []; $.each(json, function(key,value) { val1.push([value.time, value.val1]); val2.push([value.time, value.val2]); }); options.series[0].data = val1; options.series[1].data = val2; chart = new Highcharts.Chart(options); }); }); </script> </head> <html>
Я пытаюсь использовать firebug, чтобы увидеть, где я ошибся. Если я поставлю
console.log(key,value)
под $ .each я могу видеть данные:
0 ["2013-09-15 08:50:37", 18.3, 7.78] 1 ["2013-09-15 08:53:37", 18.1, 7.77] 2 ["2013-09-15 08:56:37", 18.2, 7.8]
Есть ли проблема с
val1.push([value.time, value.val1]);
или
options.series[0].data = val1;
Обновление: изменилось это и теперь работает.
val1.push([value[0], value[1]]); val2.push([value[0], value[2]]);
Согласно комментарию Pal's, он изменил это на следующее:
val1.push([value[0], value[1]]); val2.push([value[0], value[2]]);