如何在不刷新页面的情况下在javascript中捕获php会话变量?
我有一个如何在不刷新页面的情况下在javascript中捕获php会话变量?,javascript,php,ajax,session,Javascript,Php,Ajax,Session,我有一个index.php,在那里我做会话_start()等。为了登录,我向receiver.php发送一个ajax请求,在那里我设置会话变量等,并得到一个ajax响应 现在,只有在刷新index.php页面时,我才能完美地捕获php会话变量,该页面包含以下代码: jsSessionUserId = <?php if (isset($_SESSION['userId'])) { //LoggedIn: echo json_encode($_SESSION[
index.php
,在那里我做会话_start()
等。为了登录,我向receiver.php
发送一个ajax请求,在那里我设置会话变量等,并得到一个ajax响应
现在,只有在刷新index.php
页面时,我才能完美地捕获php会话变量,该页面包含以下代码:
jsSessionUserId = <?php
if (isset($_SESSION['userId'])) { //LoggedIn:
echo json_encode($_SESSION['userId']);
} else { // Not logged in.
// some code here
}
?>;
jssessionserid=;
我真正想要的是将其放入函数中,然后在收到成功的ajax响应时调用此函数(因此无需刷新
index.php
页面)。它不起作用。我怀疑php在javascript函数中不太起作用。感谢您的帮助。把事情搞混是个坏主意。比如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");
把事情搞混是个坏主意。比如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");
非常感谢。我尝试了你的概念,不再需要混合使用php和javascript。ajax调用在按钮/图像单击时完成(不涉及表单),然后在返回时更新JSSessionSerid。我还避免使用全局变量,比如使用闭包的jsSessionUserId(Crockford——这类东西的好部分)。这对我来说是一个很好的解决方案,但如果有更好的方法,请指点一下。谢谢。我尝试了你的概念,不再需要混合使用php和javascript。ajax调用在按钮/图像单击时完成(不涉及表单),然后在返回时更新JSSessionSerid。我还避免使用全局变量,比如使用闭包的jsSessionUserId(Crockford——这类东西的好部分)。目前这对我来说已经足够好了,但如果有更好的方法,请指教。