Показать сообщение отдельно
  #1 (permalink)  
Старый 18.04.2014, 15:50
Профессор
Отправить личное сообщение для FRIE Посмотреть профиль Найти все сообщения от FRIE
 
Регистрация: 25.02.2010
Сообщений: 218

Google Chart - не получается построить график из данных приходящих через json
Строю графики через гугл чарт, при чём когда ему через пхп пихал массив то всё ок, а через json просит упаковать данные в совершенно непонятный формат. Уже 2 суток пробую создавать различные массивы, и двухмерные и с индексами, что только не пробовал... Внятных примеров нигде не нашёл.

Вот инструкция
https://developers.google.com/chart/..._example?hl=fr

В ней он пишет что данные должны выглядеть как то так:

{
  "cols": [
        {"id":"","label":"Topping","pattern":"","type":"string"},
        {"id":"","label":"Slices","pattern":"","type":"number"}
      ],
  "rows": [
        {"c":[{"v":"Mushrooms","f":null},{"v":3,"f":null}]},
        {"c":[{"v":"Onions","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Olives","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Zucchini","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Pepperoni","f":null},{"v":2,"f":null}]}
      ]
}


причём что за "с" что за "v" и "f" зачем он их так нумерует никак не врубаюсь.

Когда я задаю ему вручную график вот так:

var data = new google.visualization.DataTable();
				data.addColumn('string', 'Дата');
				data.addColumn('number', 'Yandex');
				data.addColumn('number', 'Google');
				data.addColumn('number', 'Mail');

				data.addRows([
					['24.05.2014', 3,6,8],
					['25.05.2014', 1,2,7],
					['25.05.2014', 1,2,7],
				]);

всё работает круто.
Пробовал не через json а через обычный текст пихать ему те же данные, но тоже не прокатывает.

В общем, нужен пример как на стороне php упаковать колонки и столбцы, так, чтобы гугл схавал. Так как я перепробовал миллион вариантов, и кучу раз пересохранял и переписывал, всё вернулось к исходному коду, обычному массиву с данными и какой то конкретный пример привести не могу(

Я в отчаянии , помогите пожалуйста разобраться
Ответить с цитированием