将PHP变量传递给JavaScript

pta*_*mzz 8 javascript php

我有一个PHP会话变量,$_SESSION['user']在整个会话期间都存活.在head部分,我包含了我的JavaScript文件scripts.js.

如果我想要如下所示的内容,如何将会话变量传递到JavaScript文件中.

$.("#btn').click (
     function() {
        alert('<?php echo $_SESSION['user']; ?>');
     }
)
Run Code Online (Sandbox Code Playgroud)

由于<?php ?>JavaScript文件中无法识别,因此上述代码无效.所以我要放入PHP文件本身,但是如何将它保存在JavaScript文件中呢?

Chr*_*ris 14

在PHP文件中,您可以将用户设置为全局变量:

<script type="text/javascript">
    var ptamzzNamespace = {
       sessionUser : '<?php echo $_SESSION['user']; ?>'
    }        
</script>
Run Code Online (Sandbox Code Playgroud)

在包含外部JavaScript代码之前包括此内容.

然后在您的JavaScript文件中,您可以使用它:

$.("#btn').click (
     function() {
        alert(ptamzzNamespace.sessionUser);
     }
)
Run Code Online (Sandbox Code Playgroud)

另外: 如果您不确定您的会话varibale是否可以包含引号,您可以使用它addslashes()来解决此问题:

<?php echo addslashes($_SESSION['user']); ?>即使这可能会产生你不想显示的东西(因为它产生一个带有斜杠的字符串),它将有助于你的代码不会失败.(感谢Artefacto)

这会是你的选择吗?

  • 我不会这样做.全局JavaScript变量几乎总是一个坏主意. (3认同)