2013-10-01 28 views
1

我有一个index.php,我在那里做session_start()等等。对于登录,我发送一个ajax请求到receiver.php,我设置会话变量等,并得到一个ajax响应。现在如何在不刷新页面的情况下在JavaScript中捕获php会话变量?

,我可以完美捕捉PHP会话变量只有当我刷新index.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函数里面并没有很好的工作。感谢任何帮助。

回答

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"); 
+0

谢谢。我试过你的概念,我不再需要混合PHP和JavaScript。 ajax调用是在按钮/图像单击(不涉及任何形式)上完成的,然后在返回时更新jsSessionUserId。我避免使用像jsSessionUserId这样的全局变量来使用闭包(Crockford - 好的部分)。现在这对我来说已经足够好了,但如果有更好的方法,请指教。 –

相关问题