2013-05-14 120 views
0

我在每30秒運行一次php文件的HTML文件中有一個腳本。 php文件旨在更改div的innerHTML。我似乎找不到替代它的方法。從外部php文件更改innerHTML

我正在使用load(),但有幾個div s我想每30秒更新一次,我不想讓服務器獲得那麼多請求。所以我在尋找一個只有php GET,然後改變這些數的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文件中獲取元素。我不知道如何解決這個問題... 任何建議將超過aprecciated!

回答

2

您重塑jQuery的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選項。

+0

......我使用'load()',但有幾個'div'我想每30秒更新一次,而且我不想讓服務器獲得那麼多的請求。所以我正在尋找一個只有'php'獲取,然後更改這些divs中的innerhtml – fpolloa 2013-05-14 04:09:15

+0

這將有助於如果這是從一開始就在您的信息! – epascarello 2013-05-14 04:10:16

+0

對不起:s!我更新了這個問題......你能幫我嗎? – fpolloa 2013-05-14 04:13:00

1

你可能想要的是你的php.php返回一些數據,然後你使用$ .get的成功來更新你的#foo;採取從http://api.jquery.com/jQuery.get/一個例子,並修改它爲你的榜樣

$.get("php.php", function(data) { 
    $('#foo').html(data); 
}); 

希望幫助:)

+0

我不太明白你說什麼......我知道編碼。我試圖在div中打印以下內容document.getElementById(「foo」)。innerHTML ='<? $ line1 = file_get_contents('example/foo.txt');打印htmlentities($ line1);?>';' – fpolloa 2013-05-14 03:56:36

+0

我不知道如何導出數據'$ line1'用於函數 – fpolloa 2013-05-14 03:57:16

+0

我應該使用'var_export'嗎? – fpolloa 2013-05-14 04:01:22