使用Ajax更新$ _SESSION变量

时间:2014-06-19 12:25:34

标签: php

在我的主页面上,我分配了四个不同的$ _SESSION变量,如下所示: -

    <p class="p-wht space left">Working: <? echo $_SESSION['Working'] ?></p>
    <p class="p-wht green space left">Clear: <? echo $_SESSION['Clear'] ?></p>
    <p class="p-wht red space left">Busy: <? echo $_SESSION['Busy'] ?></p>
    <p class="p-wht cyan space left">STC: <? echo $_SESSION['STC'] ?></p>

页面加载时设置: -

include('status.controller.php');

并将它们设置为:

            $_SESSION['Working'] = $status['Working'];
            $_SESSION['Clear'] = $status['Clear'];
            $_SESSION['Busy'] = $status['Busy'];
            $_SESSION['STC'] = $status['STC'];

它们在页面刷新或首次加载时更新,但是当我尝试使用AJAX更新它们时,值似乎没有变化。

我试过了: -

$(function(){
setInterval(function(){
    $.ajax({
        url:'scripts/php/status.controller.php',
        success:function(data){
            if(data == "scripts/php/status.controller.php"){
            }else{
                alert(data);
                //location.reload();
        }
        }
    });
},4000);
});

但似乎没有更新这些值。它仅在页面完全重新加载时更新值,包括我不想使用的location.reload();

有什么想法吗?

ADDED; status.controller.php文件的内容;这是这个文件的内容; nathandasilva.co.uk/status.controller.txt

1 个答案:

答案 0 :(得分:0)

你能告诉我, scripts / php / status.controller.php 页面的输出是什么。如果页面将html作为输出发送,那么您应该只替换内容,例如:

<div id="content">
  <p class="p-wht space left">Working: <? echo $_SESSION['Working'] ?></p>
</div>

<script>
$(function() {

   setInterval(function(){
      $.ajax({
         url:'scripts/php/status.controller.php',
         success:function(data) {

            $("#content").html(data);                

         }
      });
   },4000);

});
</script>