从外部php文件更改innerHTML

时间:2013-05-14 03:42:39

标签: php javascript jquery innerhtml getelementbyid

我在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文件中获取该元素。我不知道怎么解决这个问题...... 任何建议都不仅仅是一个问题!

2 个答案:

答案 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 );
});

希望有所帮助:)