Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2016, 13:44
Аспирант
Отправить личное сообщение для user71 Посмотреть профиль Найти все сообщения от user71
 
Регистрация: 30.07.2016
Сообщений: 41

Как вставить данные в highcharts?
Данные хранятся в БД, через ajax успешно выгружаются на страницу. Но как их отдать highcharts для отрисовки графиков по этим данным? Данные приходят в виде json и имеют вид
Код:
[{name: "",count: "",time: ""},{name: "",count: "",time: ""},{name: "",count: "",time: ""},{name: "",count: "",time: ""}...]
на одной диаграмме будет несколько графиков. График идентифицируется по "name" данные для него хранятся в count, по xAxis нужно откладывать "time".
Я правильно понимаю что в highcharts есть средства для перебора и сортировки данных из json? или нужно самому перебирать json, переписывать в массив и подставлять уже готовое?
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2016, 13:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

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
Вроде обещают...
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2016, 14:39
Аспирант
Отправить личное сообщение для user71 Посмотреть профиль Найти все сообщения от user71
 
Регистрация: 30.07.2016
Сообщений: 41

Dilettante_Pro,
хорошо, а как указать ему что есть что?
в js элементом массива может быть функция или переменная?
На данном этапе не получается ничего. Кидаю json в data не получаю ничего. подставляю к дате функцию для парсинга даты - вообще белый экран даже ajax запрос не отработал.
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2016, 21:38
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

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

И еще, если у тебя такие данные и приходят - {name: "",count: "",time: ""} - то никаких чартов ты не получишь вообще.
Ответить с цитированием
  #5 (permalink)  
Старый 05.08.2016, 23:28
Аспирант
Отправить личное сообщение для user71 Посмотреть профиль Найти все сообщения от user71
 
Регистрация: 30.07.2016
Сообщений: 41

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

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

а у меня еще в каждом объекте есть свойство "name" и в зависимости от его значения data будет разная. Грубо говоря 3 линии по "name".
Ответить с цитированием
  #6 (permalink)  
Старый 06.08.2016, 00:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

user71,
пример формата данных с датой
http://jsfiddle.net/9wy1a610/
Ответить с цитированием
  #7 (permalink)  
Старый 06.08.2016, 05:49
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от user71
Грубо говоря 3 линии по "name".
Значит надо группировать по name. Ты решил что скрипт это сделает за тебя? Наверно он это может, но ты же не станешь читать документацию. То есть требуется транспонирование массива.
Ответить с цитированием
  #8 (permalink)  
Старый 06.08.2016, 14:56
Аспирант
Отправить личное сообщение для user71 Посмотреть профиль Найти все сообщения от user71
 
Регистрация: 30.07.2016
Сообщений: 41

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, ',') ?>]
      }]

почему?
Ответить с цитированием
  #9 (permalink)  
Старый 06.08.2016, 15:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от user71
а в других примерах они пишет так:
то и другое одно и тоже
Ответить с цитированием
  #10 (permalink)  
Старый 06.08.2016, 15:21
Аспирант
Отправить личное сообщение для user71 Посмотреть профиль Найти все сообщения от user71
 
Регистрация: 30.07.2016
Сообщений: 41

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать данные в другую панель из выбранной строки таблицы. layout: 'card'. Пролетарий ExtJS 5 03.06.2015 22:53
Как добавить данные в глобальный массив из функции Jigan2 jQuery 2 14.03.2015 18:06
Не понимаю как вернуть результат запроса, чтобы вставить в элемент realstranger AJAX и COMET 1 01.09.2014 23:20
Как передать данные из jqGrid в текстовое поле? Rooner jQuery 2 27.09.2012 19:31
Как вывести данные из PHP Sherminator Events/DOM/Window 2 07.08.2012 20:11