2012-03-06 115 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框架,处理你的想法真的很好。