一尘不染

将PHP变量传递给JavaScript

php

我有一个PHP会话变量,$_SESSION['user']在整个会话过程中仍然有效。在开头部分,我包含了我的JavaScript文件scripts.js

如果需要以下内容,如何将会话变量传递到JavaScript文件中。

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

由于<?php ?>无法在JavaScript文件中识别出,因此上面的代码不起作用。因此,我必须放入PHP文件本身,但是如何将其保留在JavaScript文件中?


阅读 253

收藏
2020-05-29

共1个答案

一尘不染

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

<script type="text/javascript">
    var ptamzzNamespace = {
       sessionUser : '<?php echo $_SESSION['user']; ?>'
    }        
</script>

在包含外部JavaScript代码之前,请先包含此内容。

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

$.("#btn').click (
     function() {
        alert(ptamzzNamespace.sessionUser);
     }
)

另外: 如果不确定会话变量本身是否可以包含引号,则可以使用addslashes()此方法来解决此问题:

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

这是您的选择吗?

2020-05-29