Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 每x秒重新加载随机div内容_Php_Html_Random_Reload - Fatal编程技术网

Php 每x秒重新加载随机div内容

Php 每x秒重新加载随机div内容,php,html,random,reload,Php,Html,Random,Reload,我有一个div,在每个页面上随机显示10个文件中的1个。我想在8秒的时间间隔内重新加载这个文件,每次重新加载10个文件时给我一个不同的文件 我已经阅读了一些使用jQuery.load作为解决方案的相关问题,但这并不适用于我的代码,因为我没有每次加载特定的文件 这是我的div内容: <div id="tall-content"> <? $random = rand(1,10); include 'tall-files/' . $random . '.php';

我有一个div,在每个页面上随机显示10个文件中的1个。我想在8秒的时间间隔内重新加载这个文件,每次重新加载10个文件时给我一个不同的文件

我已经阅读了一些使用jQuery.load作为解决方案的相关问题,但这并不适用于我的代码,因为我没有每次加载特定的文件

这是我的div内容:

<div id="tall-content">

 <?

  $random = rand(1,10);

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

 ?>

</div>

感谢使用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脚本的输出放在id为tall content的div容器中。因此,实际上,您需要创建另一个javascript,它无限期地循环调用函数ajaxFunction并等待8000毫秒。

仅使用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);

如果您想在用户坐在页面的椅子上时执行此操作,答案是javascript

例如,您可以使用此函数

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

如果您想在该div中包含一个输出一些html的php文件。Ajax是您的朋友,JQuery是一个用户友好且易于使用的javascript框架,可以处理您的问题。

为什么不能通过JQuery加载一个使用上述代码的php文件?