0

我有两个文件 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>

先感谢您

4

2 回答 2

1

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>
于 2012-08-30T20:00:43.780 回答
0

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

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

于 2012-08-30T19:59:48.197 回答