Как передать переменную сеанса PHP в функцию Javascript / jQuery? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть страница PHP, которая загружает переменную сеанса:

$user_id = $_SESSION['USER_ID'];

Ранее я включил свой Javascript / jQuery на эту страницу и добавил <? echo $user_id; ?> для установки переменной Javascript:

$(document).ready(function() {

     $(".button").click(function() {
        var user_id = <? echo $user_id; ?>
        var dataString = 'user_id=' + user_id;  
        $.ajax({  
          type: "POST",  
          url: "../add_user.php",  
          data: dataString,  
        });  
        return false
     });


});

Однако я бы хотел переместить свой Javascript на отдельную страницу и вызвать скрипт со своей страницы PHP:

<script src="add_user.js" type="text/javascript"></script>

Если я это сделаю, я больше не могу использовать <? echo $user_id; ?>, так как лучше всего передать мою переменную PHP в функцию Javascript / jQuery?

Ответы [ 4 ]

9 голосов
/ 23 декабря 2011

Вы можете настроить свой веб-сервер так, чтобы он обрабатывал файлы .js как сценарии PHP, что позволило бы выполнять код PHP из файла .js.

Однако, если это неприемлемо, вы всегда можете что-то сделатьнапример:

<script type="text/javascript">var user_id = <?php echo json_encode($user_id) ?>;</script>
<script type="text/javascript" src="add_user.js"></script>

, чтобы определить переменную на уровне вашего сценария PHP, а затем включить внешние .js как обычно.

Если $ user_id всегда числовой, то бит json_encode ()Это излишне, но я привык использовать его везде, где я генерирую код JS динамически.Использование json_encode гарантирует, что вы вставите синтаксически правильный фрагмент JS.

3 голосов
/ 23 декабря 2011
<script>
var user_id = <?php echo $user_id; ?>
</script>
<script src="add_user.js" type="text/javascript"></script>

Теперь вы можете использовать user_id в вашем add_user.js файле.Также я бы посоветовал не использовать короткие теги PHP .

2 голосов
/ 23 декабря 2011

Вы по-прежнему сможете ссылаться на вашу переменную в вашем внешнем файле js

<script type="text/javascript">
var yourvar = <? echo $user_id; ?>;
</script>
<script src="add_user.js" type="text/javascript"></script>
0 голосов
/ 23 декабря 2011

Просто начните сеанс на другой стороне.Он также более защищен, учитывая, что данные JS могут быть повреждены, даже умышленно и могут быть использованы (безопасность).

После запуска сеанса - прочитайте значение там.действительно для скриптов на одном и том же хосте.

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