vodolei2150
26.01.2015 - 21:47
Прошу помочь мне. Как вставить данные $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
26.01.2015 - 22:45
Переменную
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] ;
}
_____________
Мой первый сайтикПосмотри на свой XBMC под другим углом
Razzwan
26.01.2015 - 23:10
Нужно быть очень осторожным с такой процедурой. Потому что PHP работает на сервере, а js на пользовательской машине. Проще всего сохранить данные в каком-нибудь атрибте какого-то тега. Или можно воспользоваться технологией Ajax.
_____________
Youtube канал WebDeveloper->Run()Сайт для душиGitter
SerginhoLD
26.01.2015 - 23:17
через json_encode отдать php-массив в js
_____________
"internet explorer всех правильней отображает страницы" ©
arbuzmaster
26.01.2015 - 23:17
Проще всего сохранить данные в каком-нибудь атрибте какого-то тега.
Это как ? Не знаю такой способ расскажите пожалуйста.
_____________
Мой первый сайтикПосмотри на свой XBMC под другим углом
Razzwan
27.01.2015 - 00:25
Цитата (arbuzmaster @ 26.01.2015 - 23:17) |
Проще всего сохранить данные в каком-нибудь атрибте какого-то тега. Это как ? Не знаю такой способ расскажите пожалуйста. |
Ну, может, это и нельзя (не принято). Я так делал. Придумываем атрибут с произвольным именем и даем ему строковое значение (например <div new_attr = "var"></div>, которое является переменной, которую нужно передать. Т.е. эта перменная будет храниться в html-разметке.
Это проще, чем работать с Ajax, но по интонации возмущения, чувствую, что это неправильно.
_____________
Youtube канал WebDeveloper->Run()Сайт для душиGitter
arbuzmaster
27.01.2015 - 10:04
Да нет я просто спросил. Потому что действительно не знаю такой способ.
_____________
Мой первый сайтикПосмотри на свой XBMC под другим углом
<?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
27.01.2015 - 10:41
вы ещё по 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
27.01.2015 - 10:51
<?php
$array = range(10,20);
$arrayForJS = json_encode($array);
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
27.01.2015 - 21:00
Цитата |
Но лучше с помощью ajax |
volter9
27.01.2015 - 21:44
Игорь_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
27.01.2015 - 22:32
Цитата |
Попробуйте с ассоциативный массив, ошибка будет |
если использовать ассоциативный массив - то результатом будет объект.
а нахрена парсить с 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
Игорь_Vasinsky, я конечно могу и ошибаться, может есть какие-то исключения, но зачем использовать JSON.parse вообще в данном случае? Можно же и без него:
<?php
$array = range(10,20);
$arrayForJS = json_encode($array);
echo '<div id="test">"Elem from key 3 this is: </div>';
echo '<script>
var array = '.$arrayForJS.';
document.getElementById("test").innerHTML += array[2];
</script>';
?>
Цитата (Invis1ble @ 27.01.2015 - 21:00) |
с чего это лишний запрос на сервер лучше? |
дело не в запросах, дело в разделении обязоностей в коде
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.