我有一个div,随机显示每个页面加载中的10个文件中的1个。我希望在8秒的设定时间间隔内重新加载,给我一个不同的10个文件重新加载。
我已经使用jQuery .load
作为解决方案阅读了一些相关问题,但由于我每次都没有加载特定文件,因此我的代码不能正常工作。
这是我的div内容:
<div id="tall-content">
<?
$random = rand(1,10);
include 'tall-files/' . $random . '.php';
?>
</div>
由于
答案 0 :(得分: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中id为“tall-content”的容器。所以,你需要创建另一个javascript,它无限循环地调用函数“ajaxFunction()”并等待8000毫秒。
答案 1 :(得分: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);
答案 2 :(得分:0)
如果您想在用户坐在页面的椅子上时执行此操作,则答案是javascript。
例如,您可以使用此功能。
function recrusive_timeout_function() {
setTimeout(function() {
recrusive_timeout_function();
}, 8000);
}
如果你想在该div中包含一个php文件(输出一些html)。 Ajax是你的朋友,JQuery是一个用户友好且易于使用的javascript框架,可以处理你的想法。