我有两个文件 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
更改的值,因为它目前只是静态在您的页面上。