2012-03-06 110 views
0

我有一個div,隨機顯示每個頁面上的10個文件中的一個。我希望在8秒的時間間隔重新加載,給我一個不同的10個文件中的每一個重新加載。每x秒重新加載隨機div內容

我已經閱讀了幾個相關的問題,使用jQuery .load作爲解決方案,但這並不適合我的代碼,因爲我沒有每次加載特定的文件。

這是我的div內容:

<div id="tall-content"> 

<? 

    $random = rand(1,10); 

    include 'tall-files/' . $random . '.php'; 

?> 

</div> 

感謝

+0

爲什麼你不能加載將通過jQuery使用你的代碼的PHP文件? – Blake 2012-03-06 21:13:37

回答

0

只使用PHP來完成這是不切實際的。這個例子使用jQuery和PHP。

$(document).ready(function() { 
    $("#div").load("random.php"); 
    var refreshId = setInterval(function() { 
     $("#div").load('random.php'); 
    }, 8000); 
    $.ajaxSetup({ cache: false }); 
}); 

random.php

$pages = array("page1.php", "page2.php", "page3.php", "page4.php", "page5.php"); 

$randompage = $pages[mt_rand(0, count($pages) -1)]; 

include ($randompage); 
0

,而使用PHP來生成隨機的內容,你不能得到DIV重新加載內容,而無需刷新整個頁面。

更好的解決方案是使用AJAX。您可以將div容器內的PHP代碼作爲單獨的文件存儲,並使用ajax來請求該php文件。你也可以設置一個無限循環來每8秒申請一個php文件。下面是一個簡單的,但你將需要重新編寫代碼的時候你的規格:

<script language="javascript" type="text/javascript"> 
<!-- 
function ajaxFunction(){ 
var ajaxRequest; 
try{ajaxRequest = new XMLHttpRequest();} catch (e){try{ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {try{ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");} catch (e){alert("Error: Browser/Settings conflict");return false;}}} 
    ajaxRequest.onreadystatechange = function(){ 
     if(ajaxRequest.readyState == 4){ 
      document.getElementById('tall-content').innerHTML = ajaxRequest.responseText; 
     } 
    } 
    var url = "random.php"; 
    ajaxRequest.open("GET", url, true); 
    ajaxRequest.send(null); 
} 
//--> 
</script> 

唯一缺少的部分被刷新計時器,因爲我沒有編入了很多在JavaScript我不能幫你那裏。但在這種情況下,目標是創建一個文件「random.php」,將隨機生成器放在那裏,然後使用上面的腳本向random.php發出ajax請求,該請求會將該php腳本的輸出放入div標識爲「高內容」的容器。所以真的,你需要創建另一個無限循環地調用函數「ajaxFunction()」的JavaScript並等待8000毫秒。

0

如果你想這樣做,當用戶坐在後面椅子您的網頁上,答案是JavaScript的。

例如,您可以使用此功能。

function recrusive_timeout_function() { 
      setTimeout(function() { 
        recrusive_timeout_function(); 
      }, 8000); 
    } 

如果你想包括一個PHP文件在該div(它輸出一些html)。 Ajax是你的朋友,JQuery作爲一個用戶友好的,易於使用的JavaScript框架,處理你的想法真的很好。