Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Как передать массив данных из РНР в JS (https://javascript.ru/forum/project/52878-kak-peredat-massiv-dannykh-iz-rnr-v-js.html)

ruslanaxti 11.01.2015 13:05

Как передать массив данных из РНР в 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],
]);


Помогите пожалуйста, как это сделать?

ruslan_mart 11.01.2015 14:07

ruslanaxti, http://php.net/manual/ru/function.json-encode.php

ruslanaxti 12.01.2015 21:30

Я новичок в этом деле, а по ссылке много всего сложного. Могли бы вы показать мне пример как это делается, плиз. Т.е. как работает json, как его подставить в строку addrows

deivan 12.01.2015 23:14

как-то так можно:
var array = eval(<? echo json_encode($data; ?>);
console.log(array);

ruslan_mart 13.01.2015 08:05

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

var arr = JSON.parse(<?=json_encode($data)?>);
console.log(arr);

ruslanaxti 13.01.2015 19:39

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

Т.е. вместо [0, 0] вставлять console.log(arr)

ruslan_mart 13.01.2015 20:45

data.addRows(JSON.parse(<?=json_encode($data)?>));

ruslanaxti 16.01.2015 20:05

вставил данные как вы написали. addRows возвращает только одну строку данных [0, 0]. Мне нужно несколько значений [0, 0], [1, 10], [2, 23]. Подскажите как это сделать.

ruslan_mart 18.01.2015 12:14

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

while($result = mysqli_fetch_assoc()) {
   $data[] = $result;
}

ruslanaxti 18.01.2015 15:52

В $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],
]);


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