1

我有一个index.php,我在哪里session_start()等。对于登录,我发送一个 ajax 请求到receiver.php,在那里我设置会话变量等并得到一个 ajax 响应。

现在,只有当我刷新index.php具有以下代码的页面时,我才能完美地捕获 php 会话变量:

jsSessionUserId = <?php     
    if (isset($_SESSION['userId'])) { //LoggedIn:
        echo json_encode($_SESSION['userId']); 
    } else { //  Not logged in.
        // some code here
    }
?>;

我真正想要的是把它放在一个函数中,然后在我收到成功的 ajax 响应时调用这个函数(因此不需要刷新index.php页面)。它不工作。我怀疑 php 在 javascript 函数中无法正常工作。感谢任何帮助。

4

1 回答 1

1

把事情混在一起是个坏主意。像 php 和 javascript。现在对您来说最简单的解决方案 - 一旦收到成功的登录响应,就覆盖您的 javascript 变量。

$.post("receiver.php", formData, function(response){ // login callback
  if(response.UserId){ // return user id if login is successful
    jsSessionUserId = response.UserId; // overwrite old variable
  }
}, "json");
于 2013-10-01T14:52:30.023 回答