我有一个AJAX调用来更新$_SESSION
变量,然后<script>
应回显新变量。数据到达.php页面,并且也被存储到会话中。但是它会在AJAX调用后警告旧数据。
我尝试使用setTimeout
,并且还尝试将发出警报的调用移到AJAX
成功调用之外。我仍然得到相同的结果。
为什么不通知新的$_SESSION
数据?
AJAX
<script>
$(function() {
$('#sendBtn').click(function() {
var theva = $("#element_23").val();
$.ajax({
type : "POST",
url :'check.php',
data : {theva : theva},
success: function() {
setTimeout(function() {
var theva2 = "<? echo $_SESSION['disp'];?>";
alert(theva2);},3000);}
});
});
});
</script>
check.php
<?
if($_POST){
$_SESSION['disp'] = $_POST['theva'];}
?>
最佳答案
var theva2 = "<? echo $_SESSION['disp'];?>";
此行包含php代码,仅在页面加载时呈现。如果刷新页面并查看源,您将看到我已更新。
不确定要达到的目标,但这是一个逻辑错误
根据您的评论进行编辑
您可以从check.php返回值:
<?
if($_POST){
$_SESSION['disp'] = $_POST['theva'];
echo 'Session value is now: '.$_SESSION['disp'];
}
?>
并更改您的js成功函数以警告数据:
success: function(data) {
alert(data);
});