我在HTML
文件中有一个脚本,每隔30秒运行一个php
文件。 php
文件旨在更改div的innerHTML。我似乎没有找到替换它的方法。
我正在使用load()
,但有几个div
我希望每30秒更新一次,我不想让服务器获取那么多请求。所以我只想找一个php
得到然后更改那几个div中的innerhtml
这就是我所拥有的:
HTML
:
<script type="text/javascript">
$(document).ready(function () {
$.get('php.php');
});
setInterval(function(){
$.get('php.php');
}, 30000);
</script>
<div id="foo"></div>
php.php
:
document.getElementById("foo").innerHTML = '<?php
// some php code
?>';
我认为问题是我无法从父HTML
文件中获取该元素。我不知道怎么解决这个问题......
任何建议都不仅仅是一个问题!
答案 0 :(得分:2)
你正在重塑jQuery&#39; load()
function fetchContent() {
$("#foo").load('php.php');
window.setTimeout(fetchContent, 30000);
}
$(fetchContent);
服务器应该只返回您要显示的HTML内容。
修改
由于您的评论与原始问题不同。
function fetchContent() {
$("#foo").get('php.php', function(data) {
var html = $("<div/>").html(data);
$("#foo").html( html.find("#Section1").html() );
$("#bar").html( html.find("#Section2").html() );
$("#asd").html( html.find("#Section3").html() );
window.setTimeout(fetchContent, 30000);
});
}
$(fetchContent);
您可能希望添加onError处理程序,并且可能希望为Ajax调用设置no cache选项。
答案 1 :(得分:1)
你可能想要的是你的php.php返回一些数据,然后你使用$ .get的成功来更新你的#foo;以http://api.jquery.com/jQuery.get/为例,并根据您的示例对其进行修改
$.get("php.php", function( data ) {
$( '#foo' ).html( data );
});
希望有所帮助:)