Чтобы сделать это, вам просто нужно отобразить скрипт на странице PHP, которая содержит ваши данные, к которым вы затем можете получить доступ из любого другого Javascript на странице, включая jQuery и .ajax ().
Опять же, если вы просто хотите передать его через вызов AJAX, просто используйте json_encode ():
<?php
echo json_encode(
array(
'groupidlist'=>$groupids,
'groupnamelist'=>$groupnames,
'serverurl'=>$serverurl,
'uid'=>$curuser->getID()
)
);
?>
И затем обработайте его с помощью функций обратного вызова из .ajax()
или, возможно,лучше, .getJSON()
, который создан именно для этого использования.
Я обещаю, что я не просто спамил свой блог здесь, но я написал пост о передаче переменных междуJavascript и PHP , потому что я делал это достаточно часто, чтобы придумать простой / надежный / чистый и многократно используемый способ сделать это.Если вы регулярно передаете данные из PHP в Javascript и не нуждаетесь в AJAX, я вставлю здесь основную информацию:
В верхней части каждого внешнего js-файла я добавляю комментарии относительно переменных PHP.требуется, поэтому я могу отслеживать то, что мне нужно, когда я включаю его (это необязательно, конечно, но приятно):
/* This script depends on the following variables in phpvars:
groupidlist
groupnamelist
serverurl
uid
*/
Затем в файле PHP я передаю необходимые переменные с помощьюединственная строка Javascript, назначающая массив JSON со всеми необходимыми значениями.Примеры в PHP, непосредственно из моего кода:
<script type="text/javascript">
var phpvars = <?php
echo json_encode(
array(
'groupidlist'=>$groupids,
'groupnamelist'=>$groupnames,
'serverurl'=>$serverurl,
'uid'=>$curuser->getID()
)
);
?>;
</script>
Как только это будет установлено, я могу просто получить доступ к любым переменным PHP, которые мне нужны в Javascript, через массив phpvars
.Например, если бы мне нужно было установить источник изображения с помощью моего serverurl, я мог бы сделать следующее:
imgElement.src = phpvars.serverurl + '/images/example.png';
Поскольку он использует JSON, не нужно беспокоиться о том, что вы ничего не испортилив вашем Javascript, пытаясь вставить переменные PHP.Кодирование / декодирование переменных обрабатываются на обоих концах встроенными функциями JSON, поэтому очень сложно их сломать и передать переменные бездумно - вы передаете их, как любой другой массив PHP.Во время моих неприятностей, которые привели к этому, у меня были проблемы с обоими из них, и это решение хорошо заботится о них.