Javascript 会话变量无法在AJAX函数中显示

Javascript 会话变量无法在AJAX函数中显示,javascript,php,jquery,ajax,session-variables,Javascript,Php,Jquery,Ajax,Session Variables,我在php中工作,向数据库中插入一些值。为此,我使用了Ajax方法,在单击按钮时调用Ajax函数,在Ajax内部调用另一个php文件,在该文件中进行插入和会话变量更新。但是当插入发生时,我想在Ajax响应中显示updates会话变量,它会显示旧会话变量,而不会显示更新的会话变量 function showDiv() { document.getElementById('HelpDiv').style.display = "block"; var value ="<?php ech

我在php中工作,向数据库中插入一些值。为此,我使用了Ajax方法,在单击按钮时调用Ajax函数,在Ajax内部调用另一个php文件,在该文件中进行插入和会话变量更新。但是当插入发生时,我想在Ajax响应中显示updates会话变量,它会显示旧会话变量,而不会显示更新的会话变量

function showDiv() {
  document.getElementById('HelpDiv').style.display = "block";
  var value ="<?php  echo ''.$_SESSION['user_name']; ?>";
  alert(value);
  var ajaxRequest;  // The variable that makes Ajax possible!

  try {  
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
    // alert("ajax start");  
  } catch (e) {    
    alert("Your browser broke!");  
    // Internet Explorer Browsers

    try {
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
      //alert("start2");  
    } catch (e) {
      try {
        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        //  alert("start3");  
      } catch (e) {
        // Something went wrong
        alert("Your browser broke!");
        return false;
      }
    }
  }

  var qst_id="<?php echo''.$question_id;?>";

  // Create a function that will receive data sent from the server and will update div section in the same page.
  ajaxRequest.onreadystatechange = function() {
    //var value ="<?php  echo ''.$_SESSION['user_name']; ?>";
    //alert(value);

    var t = ajaxRequest.readyState;
    if (t == 4) {
      document.getElementById("a").innerHTML = "<?php echo ''.$_SESSION['user_name']; ?>";

      // alert("ajax received");  
      var startSession = "<?php  session_start(); ?>";
      var value = "<?php  echo ''.$_SESSION['user_name']; ?>";
      alert(value);
    }
    // if (ajaxRequest.readyState == 4) {
    //   alet("ajax received");  
    // }
  }

  // passing value to the server script, ajax file
  var queryString = "?question_id=" + qst_id;   
  ajaxRequest.open("GET", "ajax-login.php" + queryString, true);
  ajaxRequest.send(null); 
}
函数showDiv(){
document.getElementById('HelpDiv').style.display=“block”;
var值=”;
警报(值);
var ajaxRequest;//使Ajax成为可能的变量!
试试{
//Opera 8.0+、Firefox、Safari
ajaxRequest=新的XMLHttpRequest();
//警报(“ajax启动”);
}第(e)款{
警告(“你的浏览器坏了!”);
//Internet Explorer浏览器
试一试{
ajaxRequest=newActiveXObject(“Msxml2.XMLHTTP”);
//警报(“start2”);
}捕获(e){
试一试{
ajaxRequest=新的ActiveXObject(“Microsoft.XMLHTTP”);
//警报(“start3”);
}捕获(e){
//出了点问题
警告(“你的浏览器坏了!”);
返回false;
}
}
}
var qst_id=“”;
//创建一个函数,该函数将接收从服务器发送的数据,并更新同一页面中的div部分。
ajaxRequest.onreadystatechange=函数(){
//var值=”;
//警报(值);
var t=ajaxRequest.readyState;
如果(t==4){
document.getElementById(“a”).innerHTML=“”;
//警报(“收到ajax”);
var startSession=“”;
var值=”;
警报(值);
}
//if(ajaxRequest.readyState==4){
//alet(“收到ajax”);
// }
}
//将值传递给服务器脚本、ajax文件
var queryString=“?问题id=“+qst\U id”;
打开(“GET”,“ajax login.php”+queryString,true);
ajaxRequest.send(空);
}

首先要了解$\u会话变量与HTML会话变量不同: 有关PHP会话变量的更多信息,请阅读

我正在使用jQuery简化解决方案

$.ajax({
  method : "POST",
  url: "someFileToUpdateTheSession.php",
  data: $(this).serialize(),
  success: function(data){
      // Do what you want to do when the session has been updated
      alert(data);
      console.log(data);
  }
}); 
PHP端

<?php
    session_start();
    $_SESSION["user_name"] = 'anything you want';
    echo $_SESSION["user_name"];
    die();
?>


似乎您不理解客户端和服务器之间的区别您需要在AJAX响应中使用您的
echo
会话值,而不是加载页面时PHP提供的会话值。如果你搜索的话,有很多关于AJAX和PHP的教程和问题。@u\u mulder可能是,你能帮助我吗,我想用AJAX更新我的PHP页面,我想通过AJAX向PHP发送数据并获取更新值,你能告诉我怎么做吗。我不是php专家。感谢这行
document.getElementById(“a”).innerHTML=“”将被处理一次,因此它将被以下内容“替换”:document.getElementById(“a”).innerHTML=“1st_username”