如何将PHP会话变量传递给Javascript/jQuery函数?

Mic*_*ael 1 javascript php session jquery

我有一个加载会话变量的PHP页面:

$user_id = $_SESSION['USER_ID'];
Run Code Online (Sandbox Code Playgroud)

以前,我在该页面中包含了我的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
     });


});
Run Code Online (Sandbox Code Playgroud)

但是,我想将我的Javascript移动到一个单独的页面并从我的PHP页面调用脚本:

<script src="add_user.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我就不能再使用了<? echo $user_id; ?>,那么将我的PHP变量传递给Javascript/jQuery函数的最佳方法是什么?

Mar*_*c B 9

您可以将Web服务器配置为将.js文件视为PHP脚本,这样您就可以从.js文件中执行PHP代码.

但是,如果这是不可接受的,您可以随时执行以下操作:

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

在PHP脚本级别定义变量,然后像往常一样包含外部.js.

如果$ user_id总是数字,那么json_encode()位是矫枉过正,但我​​已经养成了在我动态生成JS代码的任何地方使用它的习惯.使用json_encode可以保证您插入一个语法正确的JS片段.