我有两个php页面
page1.php
<?php
session_start();
?
<script>
function request(){
$.ajax({
cache: false,
type: "POST",
url: 'page2.php',
success: function(data) {
alert(<?php echo $_SESSION['value'];?>);
},
complete: function() {
setTimeout(function(){request();}, 2000);
}
});
};
</script>
page2.php
<?php
session_start();
$_SESSION['value'] = //Assign a random value.//
echo $_SESSION['value'];
?>
问题是每次Ajax被称为page2.php都会回显当前的“ $ _SESSION ['value']”值。但是在page1.php中,除非我刷新页面,否则警报会显示旧的“ $ _SESSION ['value']”值,此后它将显示当前值,直到再次调用Ajax并更新该值为止。我不知道为什么会这样。
答案 0 :(得分:1)
请再想一想:您的<? ?>
何时执行?当带有脚本的html代码在服务器端呈现时。这意味着,除非您刷新页面-当您获得另一个常量时,它是一个常量。您应该将值呈现到服务器端page2的响应中,并回显您得到的data
。