Javascript.RU

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

Как передать массив данных из РНР в JS
Поставил график гугл чарт на сайт. Хочу массив значений из РНР передать в JS скрипт

$data = mysqli_fetch_assoc(); // $data[date, value]
while ($data <= 10):
{ делать перебор }

А эти данные вставить в JS код

data.addRows([
        [0, 0],   [1, 10],  [2, 23],
        [3, 17],  [4, 18],  [5, 9],
]);


Помогите пожалуйста, как это сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 11.01.2015, 14:07
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

ruslanaxti, http://php.net/manual/ru/function.json-encode.php
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2015, 21:30
Новичок на форуме
Отправить личное сообщение для ruslanaxti Посмотреть профиль Найти все сообщения от ruslanaxti
 
Регистрация: 11.01.2015
Сообщений: 5

Я новичок в этом деле, а по ссылке много всего сложного. Могли бы вы показать мне пример как это делается, плиз. Т.е. как работает json, как его подставить в строку addrows
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2015, 23:14
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

как-то так можно:
var array = eval(<? echo json_encode($data; ?>);
console.log(array);
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2015, 08:05
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

deivan, eval лучше не юзать где он не необходим.

var arr = JSON.parse(<?=json_encode($data)?>);
console.log(arr);
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2015, 19:39
Новичок на форуме
Отправить личное сообщение для ruslanaxti Посмотреть профиль Найти все сообщения от ruslanaxti
 
Регистрация: 11.01.2015
Сообщений: 5

Каким образом console.log(arr); подставить в массив данных?
data.addRows([
        [0, 0],   [1, 10],  [2, 23],
        [3, 17],  [4, 18],  [5, 9],
]);

Т.е. вместо [0, 0] вставлять console.log(arr)
Ответить с цитированием
  #7 (permalink)  
Старый 13.01.2015, 20:45
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

data.addRows(JSON.parse(<?=json_encode($data)?>));
Ответить с цитированием
  #8 (permalink)  
Старый 16.01.2015, 20:05
Новичок на форуме
Отправить личное сообщение для ruslanaxti Посмотреть профиль Найти все сообщения от ruslanaxti
 
Регистрация: 11.01.2015
Сообщений: 5

вставил данные как вы написали. addRows возвращает только одну строку данных [0, 0]. Мне нужно несколько значений [0, 0], [1, 10], [2, 23]. Подскажите как это сделать.
Ответить с цитированием
  #9 (permalink)  
Старый 18.01.2015, 12:14
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

ruslanaxti, значит у тебя на сервере записывается только один элемент.

while($result = mysqli_fetch_assoc()) {
   $data[] = $result;
}
Ответить с цитированием
  #10 (permalink)  
Старый 18.01.2015, 15:52
Новичок на форуме
Отправить личное сообщение для ruslanaxti Посмотреть профиль Найти все сообщения от ruslanaxti
 
Регистрация: 11.01.2015
Сообщений: 5

В $data у меня выводится массив данных. Не получается этот массив написанный на РНР через while вставить в JS код.

function drawChart() {

      var data = new google.visualization.DataTable();
      data.addColumn('number', 'X');
      data.addColumn('number', 'Dogs');

<?php 
while($result = mysqli_fetch_assoc()) {
   <scripts>data.addRows(JSON.parse(<?=json_encode($result )?>));</scripts>
}
?>

Это правильно написано?

Т.е в итоге нужен такой вариант
data.addRows([
   [0, 0],   [1, 10],  [2, 23],
   [3, 17],  [4, 18],  [5, 9],
]);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как из js передать параметр в html wins Общие вопросы Javascript 6 22.12.2013 15:56
Как передать сложный массив на сервер vuler jQuery 1 27.03.2012 16:15
Как перевести json строку в js массив? Tek Общие вопросы Javascript 1 25.03.2012 17:11
написал коряво плагин на JS - он работает, а как сделать лучше? Теги: Массив, replace alexben Общие вопросы Javascript 2 11.02.2012 15:21
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30