javascript - 使用ajax设置PHP session 变量

标签 javascript php jquery ajax session

想要更改 SESSION 变量“fullname”的值而不刷新页面。

我使用ajax的实现:

第 1 页 html:

<input type="text" name="fullname" id="fullname" placeholder="Full name">

<button onclick="setSession()"> GO </button>

第 1 页脚本:

<script>
function setSession(){
   var fullname = $("#fullname").val();
   var dataString = 'fullname=' + fullname;

   $.ajax({
        type: "POST",
        url: "Page2.php",
        data: dataString,
        cache: false,
        success: function( data ) {
             if(data === 'True'){
                 alert("<?php echo $_SESSION['fullname'];?>");
              }
            }
        });
      }
</script>

第 2 页:

session_start();
$_SESSION["fullname"] = $_POST["fullname"];
echo 'True';
exit();

它不会更改 session 变量的值。

两个页面都有session_start()。

最佳答案

您的代码应该已经在更改 PHP session 中的值。您只是没有正确设置客户端脚本来显示这一点。

在 PHP 脚本中返回某种指示器:

<?php
// Page2.php

session_start();

$_SESSION["fullname"] = $_POST["fullname"];

echo 'set session fullname to ' . $_POST['fullname'];

然后在 AJAX 成功函数中显示该响应:

...
success: function( response ) {
    alert(response);
}
...

当您使用alert("<?php echo $_SESSION['fullname'];?>");时在您的成功函数中,PHP 将填写 $_SESSION['fullname']页面加载时,警报框中的值会出现一次,并且在重新加载页面之前它永远不会改变,即使您通过 AJAX 成功更新了 session 值。

关于javascript - 使用ajax设置PHP session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46894940/

相关文章:

javascript - 使用javascript在firefox中Grep一个页面

javascript - 将 jquery 函数绑定(bind)到元素

php - 从 mcrypt_encrypt() 迁移到 openssl_encrypt()

php - htaccess 404 在添加尾部斜杠时无法正常工作

jquery - 只执行一次jquery

javascript - 选择国家时改变颜色

javascript - 如何从url获取json数据并保存到const变量【TypeScript】

javascript - nw.js 使用 nwjc 工具保护每个 .js 文件

php - WooCommerce:根据国家/地区禁用多种付款方式

javascript 密码计不递增