Обновление AJAX Div с PHP - PullRequest
       27

Обновление AJAX Div с PHP

0 голосов
/ 12 января 2012

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

Это код, который генерируется при загрузке страницы:

<div id="galleria">

    <?php
    $a = array();
    $dir = '../public/wp-content/uploads/2012/01';
    if ($handle = opendir($dir)) {
      while (false !== ($file = readdir($handle))) {
        if (preg_match("/\.png$/", $file)) $a[] = $file;
        elseif (preg_match("/\.jpg$/", $file)) $a[] = $file;
        elseif (preg_match("/\.jpeg$/", $file)) $a[] = $file;
      }
      closedir($handle);
    }

    $totalImgs = count($a);
    $imgUsed = array();
    for ($j = 0; $j < 100; $j++)
    {
        do
        {
            $randIndex = mt_rand(0, $totalImgs);
        }
        while ($imgUsed[$randIndex] === TRUE);
        $imgUsed[$randIndex] = TRUE;
        echo "<img src='" . $dir . '/' . $a[$randIndex] . "' />";
    }

    ?>  

</div>

Я хотел бы автоматически обновлять это каждые 10 секунд, но не перезагружать страницу.Я прочитал о ajax, и кажется, что это возможно, но я не могу заставить его работать.

Все, что он делает, это показывает галерею div и загружает 100 изображений внутри div.Затем сценарий галереи вступает во владение и показывает это красиво.Будет ли AJAX работать лучше или JQuery?

Спасибо за помощь!

Ответы [ 3 ]

5 голосов
/ 12 января 2012

"Будет ли AJAX работать лучше или jQuery?"- AJAX - это техника, jQuery - это библиотека.Как выясняется, у jQuery есть отличный API для AJAX.

Давайте назовем этот кусочек PHP «galleria.php».При загрузке исходной страницы она вставляется в родительскую страницу PHP с помощью команды ol '<?php include('galleria.php')?>.Теперь конечный пользователь видит полную инициализированную страницу.

Чтобы обновить ее, у вас есть несколько доступных вариантов AJAX, но проще всего включить jQuery на свою страницу, а затем вы можете использовать .load()скрипт:

var updateGallery = setInterval(function() {
  $('#someDiv').load('galleria.php');
}, 10000);

Есть место для настройки ... возможно galleria.php не включает <div id="galleria">, который установлен на странице.В этом случае вы загрузите прямо в #galleria вместо #someDiv и сохраните себе ненужный контейнер.Возможно, вы кешируете объект $('#someDiv'), объявив его в другой области видимости, чтобы его можно было использовать повторно.Но это общая суть.

0 голосов
/ 12 января 2012

Как я написал здесь , вы можете заполнить div вызовом jQuery ajax.

0 голосов
/ 12 января 2012

Использование функции setInterval с вызовом AJAX*

...