2012-03-06 2 views
0

У меня есть div, который случайным образом показывает 1 из 10 файлов на каждой странице. Я бы хотел, чтобы это перезагрузилось с заданным интервалом в 8 секунд, давая мне другой один из 10 файлов, каждый из которых перезагружается.Reload random div content каждые x секунд

Я прочитал несколько связанных вопросов, используя jQuery .load как решение, но это не совсем работает с моим кодом, так как я не загружаю конкретный файл каждый раз.

Это мое содержание DIV:

<div id="tall-content"> 

<? 

    $random = rand(1,10); 

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

?> 

</div> 

Благодаря

+0

Почему вы не можете загрузить файл php, который будет использовать ваш код выше через jQuery? – Blake

ответ

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. Вы можете сохранить этот PHP-код внутри контейнера div в виде отдельного файла и использовать ajax для запроса этого файла php. Вы также можете установить бесконечный цикл для запроса файла php каждые 8 ​​секунд. Вот пример, но вам нужен будет повторно код это ваша спецификация:

<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», установка случайного генератора там и использование этого сценария выше, чтобы сделать запрос ajax на random.php, который поместит вывод этого php-скрипта в div контейнер с идентификатором «высокий контент». Так что, действительно, вам нужно создать еще один javascript, который циклически называет функцию «ajaxFunction()» и ждет 8000 миллисекунд.

0

Если вы хотите сделать это, пока пользователь сидит в кресле на вашей странице, ответ на JavaScript.

Вы можете использовать эту функцию, например.

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

Если вы хотите включить php-файл в этот div (который выводит некоторый html). Ajax - ваш друг и JQuery как удобная и простая в использовании структура javascript, которая обрабатывает ваши мысли очень хорошо.