将PHP变量传递给JavaScript。

24 浏览
0 Comments

将PHP变量传递给JavaScript。

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

如果我想要实现以下功能,我该如何将会话变量传递到JavaScript文件中:

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

由于JavaScript文件中不识别``,上面的代码不起作用。所以我必须将它放在PHP文件中,但是如何保留在JavaScript文件中呢?

0
0 Comments

在这个问题中,出现的原因是需要将PHP变量传递给JavaScript,以便在JavaScript中使用。解决方法是将PHP变量设置为全局变量,并在JavaScript中使用。

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


在包含外部JavaScript代码之前,要包含此代码。

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

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

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


即使这可能会产生一些不想显示的字符串(因为它会产生带有斜杠的字符串),但它可以确保代码不会失败。

这是否对您有帮助?

我不建议这样做。全局JavaScript变量几乎总是一个坏主意。

为什么?唯一可能发生的事情是全局变量可能与某些框架中的现有变量混淆。为了防止这种情况发生,很容易创建自己的命名空间对象来存储全局变量。我编辑了问题以展示如何做到这一点。

好的,创建一个自己的命名空间对象确实可以减轻混淆的风险。但在你的答案中,你没有使用一个...;)

-1 如果$_SESSION['user']中包含单引号或者编码与网页不同,则这种方法不起作用。最好的解决方法是使用json_encode

json_encode似乎只能在$_SESSION['user']编码为UTF-8时才有效,否则操作会失败。为了解决引号问题,可以使用addslashes()

0
0 Comments

问题的出现原因是因为需要将PHP变量传递给JavaScript。解决方法是将userID(在PHP中)设置为文件中的一个隐藏的input类型,并在JavaScript代码中读取隐藏输入类型的值。

下面是解决方法的具体步骤:

1. 在PHP中,设置一个变量userID,该变量包含要传递给JavaScript的值。

    

2. 在HTML文件中,添加一个隐藏的input类型,并将userID作为其值。

    

3. 在JavaScript代码中,通过访问隐藏输入类型的值来获取userID。

    var userID = document.getElementById("userID").value;
    console.log(userID); // 输出 12345

通过以上步骤,我们成功将PHP变量userID传递给了JavaScript。现在,我们可以在JavaScript代码中使用这个变量来进行进一步的操作。

0
0 Comments

将JavaScript文件解析为PHP的原因是为了将PHP变量传递到JavaScript中。这可以通过将服务器配置为解析.js文件为PHP来实现。以下是在Apache配置文件或.htaccess文件中的示例代码:

AddHandler application/x-httpd-php5 .js

通过将上述代码添加到服务器配置文件中,服务器会将所有名为"scripts.js"的文件解析为PHP文件。这样,我们可以在JavaScript文件中使用PHP变量。

但是,这种方法可能会导致安全风险,因为将JavaScript文件解析为PHP意味着可以在其中执行任何PHP代码。因此,为了避免潜在的安全问题,有更好的解决方法,即使用AJAX请求从PHP文件中获取变量值。

通过AJAX请求,我们可以在JavaScript文件中向服务器发送请求,获取PHP变量的值,并将其用于JavaScript代码中。以下是一个示例代码:

// 创建一个XMLHttpRequest对象
var xhr = new XMLHttpRequest();
// 发送GET请求到PHP文件
xhr.open('GET', 'get_variable.php', true);
xhr.send();
// 当请求完成时
xhr.onload = function() {
    // 如果请求成功
    if (xhr.status === 200) {
        // 获取从PHP文件返回的变量值
        var variable = xhr.responseText;
        
        // 在JavaScript中使用获取的变量值
        console.log(variable);
    }
};

在上述示例中,我们使用XMLHttpRequest对象发送一个GET请求到名为"get_variable.php"的PHP文件。当请求完成时,我们可以通过xhr.responseText获取PHP文件返回的变量值,并在JavaScript中使用它。

通过使用AJAX请求从PHP文件中获取变量值,我们可以避免将JavaScript文件解析为PHP的安全风险,并且可以更灵活地在JavaScript中使用PHP变量。

0