会话变量无更新

时间:2018-09-08 09:43:06

标签: php jquery ajax

我有两个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并更新该值为止。我不知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

请再想一想:您的<? ?>何时执行?当带有脚本的html代码在服务器端呈现时。这意味着,除非您刷新页面-当您获得另一个常量时,它是一个常量。您应该将值呈现到服务器端page2的响应中,并回显您得到的data