Как получить доступ к переменным PHP из JavaScript? - PullRequest
0 голосов
/ 09 октября 2011

Я хочу получить доступ к PHP (файловые переменные на стороне сервера) с JavaScript (клиентский скрипт) без использования MySQL.например, у меня есть $ name = Tom;Как мне получить доступ к этой переменной $ name в JavaScript?Пожалуйста, покажите пример кода, поскольку я новичок в программировании.Спасибо.

Ответы [ 3 ]

6 голосов
/ 09 октября 2011

Вы можете сделать что-то вроде

<script>
    php_variable = <?= json_encode($php_variable) ?>;
</script>

, что должно даже позволить вам создавать массивы и, возможно, объекты.Требуется PHP 5.2 или более поздняя версия.Если вы застряли без json_encode, вы можете заключить кавычки вокруг вызова в addslashes, но это не позволит вам создавать массивы и тому подобное.

Если вы намерены установить значение в некоторомформа, вы можете сделать как

<input type="text" name="stuff" value="<?= htmlentities($stuff) ?>">

и, конечно, вы можете получить доступ к значению этого элемента в вашем скрипте, если это необходимо.

Два ключевых момента, которые нужно убрать здесь:

  • Поскольку PHP генерирует страницу, он может выводить что угодно, даже прямо в середине <script> элемента.Вы можете использовать это для передачи переменных с сервера на клиент, но не наоборот.(Передача клиентских переменных ... ну ... для этого фактически требуется XHR или отправка формы.)

  • Но всегда * избегайте вещей, идущих из PHP в любое место - особенно если этовдаваясь в HTML, JS или непосредственно в SQL.Если ваш сервер не установит все запаздывающие (например, включающие магические кавычки), PHP получит необработанные данные, и у него могут быть специальные символы, которые приведут к разрыву одного или всех из них.

* Хорошо, не вполне всегда.Если у вас есть переменная PHP, содержащая некоторый HTML или JS, который вы хотите вывести как HTML / JS, то не избегайте этого.Но вы должны знать, что означает «XSS», и не выводить данные вслепую, предоставленные пользователем.

0 голосов
/ 09 октября 2011

Вы можете сделать это простыми вещами.


function reset1()
{
//document.frmadd.intFaqCategoryTypeID.value='1';
document.frmadd.reset();
document.frmadd.intChatRoomCategoryId.value='<?php echo $intChatRoomCategoryId ; ?>';
document.frmadd.intEventId.value='<?php echo $intEventId ; ?>';
document.frmadd.intGroupId.value='<?php echo $intGroupId ; ?>';
document.frmadd.intMemberID.value='<?php echo $intAddedByMemberId ; ?>';
return false;
}
0 голосов
/ 09 октября 2011

Поскольку javascript на стороне клиента, а php на стороне сервера, вам потребуется использовать ajax (javascript) для доступа к переменным сеанса на стороне сервера (php).Я бы порекомендовал исследовать инфраструктуру jquery ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...