[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вставить данные из РНР в JS?
Страницы: 1, 2
vodolei2150
Прошу помочь мне. Как вставить данные $data в JS код data.addRows? Нужно сделать в цикле

$query = mysqli_query(SELECT count, date);
$data = mysqli_fetch_assoc($query);

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

arbuzmaster
Переменную
var test='<?php echo $data; ?>';
как то примерно так, насчет массива не знаю т.к. плохо знаю js я делал так


$files_sam5ser=implode(", ", $all_file_sam5ser);


var sam5ser = '<?php echo $files_sam5ser;?>'.split(', ');
for (var i = 0; i < sam5ser.length; i++)
{
str += '<option value="'+ sam5ser[i] +'">' + sam5ser[i] + '</option>';
}
// можно так наверное
for (var i = 0; i < sam5ser.length; i++)
{
str =i +','+ sam5ser[i] ; // в итоге будет например str=0,1;
}


_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Razzwan
Нужно быть очень осторожным с такой процедурой. Потому что PHP работает на сервере, а js на пользовательской машине. Проще всего сохранить данные в каком-нибудь атрибте какого-то тега. Или можно воспользоваться технологией Ajax.


_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
SerginhoLD
через json_encode отдать php-массив в js

_____________
"internet explorer всех правильней отображает страницы" ©
arbuzmaster
Проще всего сохранить данные в каком-нибудь атрибте какого-то тега.
Это как ? Не знаю такой способ расскажите пожалуйста.


_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Razzwan
Цитата (arbuzmaster @ 26.01.2015 - 23:17)
Проще всего сохранить данные в каком-нибудь атрибте какого-то тега.
Это как ? Не знаю такой способ расскажите пожалуйста.

Ну, может, это и нельзя (не принято). Я так делал. Придумываем атрибут с произвольным именем и даем ему строковое значение (например <div new_attr = "var"></div>, которое является переменной, которую нужно передать. Т.е. эта перменная будет храниться в html-разметке.

Это проще, чем работать с Ajax, но по интонации возмущения, чувствую, что это неправильно.

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
arbuzmaster
Да нет я просто спросил. Потому что действительно не знаю такой способ.

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
chee

<?php
$query = mysqli_query("SELECT first, second FROM coords");
$rows = array();
while($row = mysqli_fetch_assoc($query)) {
$rows[] = $row;
}
?>
data.addRows(<?php echo json_encode($rows);?>);

Но лучше с помощью ajax


$.ajax({
url: 'coords.php',
type: 'json',
success: function (data) {
data.addRows(data);
}
}
);

файл coords.php

$query = mysqli_query("SELECT first, second FROM coords");
$rows = array();
while($row = mysqli_fetch_assoc($query)) {
$rows[] = $row;
}
echo json_encode($rows);


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Игорь_Vasinsky
вы ещё по API получите эти данные.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
<?php
$array = range(10,20);
//или массив или объект
$arrayForJS = json_encode($array);//[10,11,12,13,14,15,16,17,18,19,20]

//Проверка использования

echo '<div id="test">"Elem from key 3 this is: </div>';
echo '<script>
var array = JSON.parse("'
.$arrayForJS.'");
document.getElementById("test").innerHTML += array[2];
</script>'
;
?>


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Invis1ble
Цитата
Но лучше с помощью ajax

с чего это лишний запрос на сервер лучше?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

volter9
Игорь_Vasinsky
Попробуйте с ассоциативный массив, ошибка будет :D

Лучше так тогда:

<?php

$array = array (
'test' => 'string',
'array' => range(1,20)
);


?>
<div id="test">"Elem from key 3 this is: </div>
<script type="
text/javascript">
var array = JSON.parse('<?php echo json_encode(
$array) ?>');
document.getElementById("
test").innerHTML += array[2];
</script>


Также можно как вариант через атрибуты, как предложил Razzwan, только через data-* атрибут.

_____________
Мой блог
Игорь_Vasinsky
Цитата
Попробуйте с ассоциативный массив, ошибка будет biggrin.gif

если использовать ассоциативный массив - то результатом будет объект.

а нахрена парсить с JSON.parse объект?????

HTML вывод у меня написан под массив - который я и указал.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Zuenf
Игорь_Vasinsky, я конечно могу и ошибаться, может есть какие-то исключения, но зачем использовать JSON.parse вообще в данном случае? Можно же и без него:

<?php
$array = range(10,20);
//или массив или объект
$arrayForJS = json_encode($array);//[10,11,12,13,14,15,16,17,18,19,20]

//Проверка использования

echo '<div id="test">"Elem from key 3 this is: </div>';
echo '<script>
var array = '
.$arrayForJS.';
document.getElementById("test").innerHTML += array[2];
</script>'
;
?>
chee
Цитата (Invis1ble @ 27.01.2015 - 21:00)
с чего это лишний запрос на сервер лучше?

дело не в запросах, дело в разделении обязоностей в коде

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.