我有两个文件php(index.php& data.php),第一个发送数据到第二个,它每隔一秒运行一次并显示数据。 问题是数据没有更新
也许代码解释得更好
data.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;
?>
的index.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>
提前谢谢
答案 0 :(得分:1)
session_start
(请参阅the documentation中的注释),这意味着您必须在输出之前调用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>
答案 1 :(得分:0)
你实际上并没有从你的javascript调用你的data.php脚本。此时你的javascript只是静态的(查看输出源代码),使用newdata
的相同值反复执行相同的函数。您需要实际对data.php脚本进行AJAX调用以更新JSON。
请注意,此线程上的session_start注释很重要。这也应该修复,但这不会解决你所希望使用javascript来提取更新的JSON数据的基本问题,但是没有newdata
的值发生变化,因为它当前只是静态的你的页面。