Javascript 会话变量无法在AJAX函数中显示
我在php中工作,向数据库中插入一些值。为此,我使用了Ajax方法,在单击按钮时调用Ajax函数,在Ajax内部调用另一个php文件,在该文件中进行插入和会话变量更新。但是当插入发生时,我想在Ajax响应中显示updates会话变量,它会显示旧会话变量,而不会显示更新的会话变量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
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”当ajax请求完成时,它总是执行上面的行。我希望它是明确的,无论如何,你应该考虑从Ajax函数返回一个值,以响应我如何显示在Ajax响应中可更新的会话,有没有其他的本地方法。我想在ajax响应中显示更新的值