Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как вставить данные в highcharts? (https://javascript.ru/forum/misc/64360-kak-vstavit-dannye-v-highcharts.html)

user71 05.08.2016 13:44

Как вставить данные в highcharts?
 
Данные хранятся в БД, через ajax успешно выгружаются на страницу. Но как их отдать highcharts для отрисовки графиков по этим данным? Данные приходят в виде json и имеют вид
Код:

[{name: "",count: "",time: ""},{name: "",count: "",time: ""},{name: "",count: "",time: ""},{name: "",count: "",time: ""}...]
на одной диаграмме будет несколько графиков. График идентифицируется по "name" данные для него хранятся в count, по xAxis нужно откладывать "time".
Я правильно понимаю что в highcharts есть средства для перебора и сортировки данных из json? или нужно самому перебирать json, переписывать в массив и подставлять уже готовое?

Dilettante_Pro 05.08.2016 13:58

user71,
EXTERNAL DATA LOADING

Highcharts takes the data in a JavaScript array, which can be defined in the local configuration object, in a separate file or even on a different site. Furthermore, the data can be handled over to Highcharts in any form, and a callback function used to parse the data into an array.
http://www.highcharts.com/products/highcharts
Вроде обещают...

user71 05.08.2016 14:39

Dilettante_Pro,
хорошо, а как указать ему что есть что?
в js элементом массива может быть функция или переменная?
На данном этапе не получается ничего. Кидаю json в data не получаю ничего. подставляю к дате функцию для парсинга даты - вообще белый экран даже ajax запрос не отработал.

warren buffet 05.08.2016 21:38

Вот тут читай, за тебя нашел http://www.highcharts.com/docs/worki...rom-a-database

И еще, если у тебя такие данные и приходят - {name: "",count: "",time: ""} - то никаких чартов ты не получишь вообще.

user71 05.08.2016 23:28

ну там в кавычках данные конечно, разумеется.
Это я уже читал. Там в примере пхп у меня нету пхп у меня только js и на клиенте и на сервере.
Вот тут в примере
$data[] = "[$datetime, $value]";

т.е они передают массив а не объект. и перебирает этот массив пхп.
series: [{
         data: [<?php echo join($data, ',') ?>]
      }]

а у меня еще в каждом объекте есть свойство "name" и в зависимости от его значения data будет разная. Грубо говоря 3 линии по "name".

рони 06.08.2016 00:01

user71,
пример формата данных с датой
http://jsfiddle.net/9wy1a610/

warren buffet 06.08.2016 05:49

Цитата:

Сообщение от user71
Грубо говоря 3 линии по "name".

Значит надо группировать по name. Ты решил что скрипт это сделает за тебя? Наверно он это может, но ты же не станешь читать документацию. То есть требуется транспонирование массива.

user71 06.08.2016 14:56

warren buffet,
Я не решил, я спрашиваю сделает/не сделает? если сделает то как это организовать? что куда записать надо? Документацию я читаю почему нет то. Но в доках не понятны лично мне некоторые куски кода. а пояснений к ним никаких нет. Ну вот к примеру.
$.getJSON(url, function(data) {
        options.series[0].data = data;
        var chart = new Highcharts.Chart(options);
        
	});

вот это вот "options.series[0].data = data" это что такое? для чего и куда?
а в других примерах они пишет так:
series: [{
         data: [<?php echo join($data, ',') ?>]
      }]

почему?

рони 06.08.2016 15:05

Цитата:

Сообщение от user71
а в других примерах они пишет так:

то и другое одно и тоже

user71 06.08.2016 15:21

почему тогда я не могу туда подставить for(i in data) options.series[i].data = data.counter;


Часовой пояс GMT +3, время: 10:19.