<p>我已经为此工作了一整天,但我想在学习AJAX时,我对可用的各种方法感到困惑。我希望我的网站显示Python脚本的结果。我能做到。在</p>
<p>问题是脚本的结果会随机更改(这是我车库门的状态),如果车库门的状态发生变化,我的站点就会变得很笨拙。通常用户必须不断地重新加载页面才能获得当前状态。我尝试让显示状态的DIV每5秒更新一次,从而显示新的状态。在</p>
<p>Python脚本运行大约需要4秒,因此我希望继续将其作为函数调用,并将其作为DIV传递到我想要显示结果的站点上。在</p>
<p>如果可能,一个PHP文件(索引.php). 这是我要做的事情的框架。我的get_status函数正常工作,但我对它的其余部分一无所知。在</p>
<p>谢谢。在</p>
<p>编辑:代码更新与小调整发现的评论者。在</p>
<pre><code><html>
<body>
<?php
function get_status(){
$status = shell_exec('python /path/to/garage_door/myq-garage.py status'); //Equals either 'Open' or 'Closed'
echo $status;
}
?>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
var java_status = <?php echo json_encode(get_status) ?>;
// I have no idea how to pass a variable from PHP thru javascript to PHP on the
// same page. Trying to pass on results of get_status function every 5 seconds.
setInterval(function(){
$.ajax({
url: "index.php"
type: "POST"
dataType: "json"
data: ({status: java_status}),
success: function(data){
$("#status_div").html(data);
}
})
}, 5000);
</script>
<div id="status_div">
<?php
$new_status = json_decode(data);
?>
// I have no idea how to get that status variable here.
The Garage Door Status is: <?php
echo $new_status;
?>
</div>
</body>
</html>
</code></pre>