刷新 session_start() 中的数据


Refreshing data in session_start()

我有两个文件 php(index.php & data.php(,第一个将数据发送到第二个,它每隔一秒运行一次并显示数据。问题是数据没有更新

也许代码解释得更好

数据.php

  <?php
  session_start();
  $xml = simplexml_load_file("file.xml"); // the contents of the file changes every second
  $json = json_encode($xml);
  $_SESSION['varname'] = $json;
  ?>

索引.php

  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    <script language="JavaScript">
          window.setInterval(function() { 
        <?php 
        session_start(); 
        $json = $_SESSION['varname']; 
        ?>
        var newdata = <?php echo $json ; ?>;
    //code to show data
    }, 1000); 
          </script>

提前谢谢你

必须在

任何输出之前调用session_start(请参阅文档中的注释(,这意味着您必须在任何输出之前调用session_start

<?php 
    session_start(); ?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script language="JavaScript">
      window.setInterval(function() { 
    <?php 
    $json = $_SESSION['varname']; 
    ?>
    var newdata = <?php echo $json ; ?>;
//code to show data
}, 1000); 
      </script>

你实际上根本没有从javascript调用你的data.php脚本。 此时,您的 javascript 只是静态的(查看您的输出源(,以相同的值一遍又一遍地执行相同的函数newdata。 您需要实际对数据.php脚本进行 AJAX 调用以更新 JSON。

请注意,此线程上的session_start注释很重要。这也应该被修复,但这并不能解决您想要使用 javascript 提取更新的 JSON 数据的基本问题,但没有newdata更改的值,因为它目前只是静态在您的页面上。