как передать массив из php в javascript

nbv

Новичок
создал массив в php файле
PHP:
$seq = array("foo", "bar", "baz", "blong");
 json_encode($seq);
в другом файле прописал код js
PHP:
var name = "<? echo $seq);?>";
 console.log(name);
в ответ получил (Array).
если прописать так
PHP:
var name = "<? echo json_decode($seq);?>";
в ответ получу (пустая строка)
как мне его перетащить что бы массив был такого формата
PHP:
var name = new Array (3, 7, 12, 4.5, "some string");
пересмотрел кучу примеров но ни один не дал результат, может есть другой способ передачи массива?
 

WMix

герр M:)ller
Партнер клуба
json_encode($seq); это хорошо, но нужно результат сохранить
PHP:
 $seq = array("foo", "bar", "baz", "blong");
 $json = json_encode($seq);
ну и его использовать
PHP:
var name = "<? echo $json);?>";
 

nbv

Новичок
извиняюсь скопировал код с черновика на чистовике так и писал
PHP:
$seq = array("foo", "bar", "baz", "blong");
 $json = json_encode($seq);
но ошибка была тут
PHP:
var name = "<? echo $json);?>";
её уже сам исправил кому интересно вот правильный вариант
PHP:
var name = eval('<?php echo $json;?>');
 

nbv

Новичок
да так тоже работает. а почему он таким же способом не вытаскивает данные из запроса:
PHP:
if (@$Param['data'] == 'autocomplete')
 {
 $data = array();
	$q = mssql_query("select DISTINCT NamePunkt from PromptMessageElectData");
while($r = mssql_fetch_assoc($q)){
		$data[] = array($r['NamePunkt']);
	}
	 $json = json_encode($data); 
}
 

damner2

Новичок
да так тоже работает. а почему он таким же способом не вытаскивает данные из запроса:
Кто "он"? компьютер?
Не вытаскивает данные? Может данных нет в БД? Может ошибка в коде, но у тебя отключён вывод ошибок? Может ты неправильно смотришь вытащились ли данные? Вариантов куча и все они не будут связаны с темой передачи данных из php в javascript.
 

nbv

Новичок
у меня стоит Firebug и при выполнении
PHP:
console.log(name);
появляется undefined
 

damner2

Новичок
nbv
В приведённом тобой коде нет формирования инструкций для js, чтоб в нём появилась переменная "name".
 

nbv

Новичок
как нету?
вот полный код:
PHP:
var name = <?php echo $json;?>;

console.log(name);
 

nbv

Новичок
прочитал проверил посмотрел результат тот же, может есть способ получить результат из запроса:
PHP:
 $q = mssql_query("select DISTINCT NamePunkt from PromptMessageElectData");
и потом его просто присвоить переменной в качестве массива?
 

nbv

Новичок
всё два дня трудов и работает! вот рабочий вариант может кому пригодится :
1.php
PHP:
$data = array();
	$q = mssql_query("select DISTINCT "Имя поля" from "Имя таблицы"");
	while($r = mssql_fetch_assoc($q)){
		$data[] = array($r['Имя поля']);
	}
	 $json =  json($data);
2.php
PHP:
var massiv = eval('<?php echo $json;?>');
 

WMix

герр M:)ller
Партнер клуба
да не нужно евал! json это и есть яваскрипт
PHP:
var massiv = <?= $json ?>;
 

nbv

Новичок
а зачем тогда вообще нужен eval на сколько я понял eval используют для разбора формата JSON.
 

WMix

герр M:)ller
Партнер клуба
eval нужен когда ты string имеешь и запустить его хочешь
PHP:
var str = "alert('hello')";
eval(str);
 

SaM1001

Новичок
Ребят, вижу что тема старая, но у меня похожая проблема не могу php запихать вот так:
PHP:
var fArtNr = $("<?php $formarticle->select_article($object->art_nr,\'ref\',array(\'selectarnr_id\',\'state_id\'),6); ?>&nbsp;/&nbsp;");
на выходе выдаёт мне:
Код:
<!--? $formarticle--->
select_article($object-&gt;art_nr,'ref',array('selectarnr_id','state_id'),6); ?>;
не врублюсь, почему $formarticle закрываются в коммент...
объясните русским языком, что я не так делаю
 
Сверху