Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不刷新页面的情况下在javascript中捕获php会话变量?_Javascript_Php_Ajax_Session - Fatal编程技术网

如何在不刷新页面的情况下在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——这类东西的好部分)。目前这对我来说已经足够好了,但如果有更好的方法,请指教。