Для разработчика PHP, вероятно, очень полезна библиотека классов Pear. Мы знаем, что Pear::Pager специализируется на пейджинге, а Pear::HTML_AJAX — это библиотека классов для Ajax-приложений. Но Pager используется не только для разбивки ссылок в HTML, он уже готов для Ajax, который более популярен, чем Super Girl. Давайте посмотрим, как эти два пакета интегрируются и применяются.
Пейджер и Javascript
Теперь, когда мы сделали первый шаг, Pager уже может создавать ссылки JavaScript. Интеграция с Ajax теоретически возможна. Ниже приведен пример пейджера и разбиения на страницы JavaScript:
ОБЫЧНЫЙ ТЕКСТ.
PHP:
require_once'Pager/Pager.php';
$data=range(1,100);//массив данных для разбиения на страницы
$pager_params=массив(
'mode' =>'Скользящий',
'append' =>false, //не добавлять параметры GET к URL-адресу
'путь' =>'',
'fileName'=>'javascript:revealDiv(%d)', //Пейджер заменяет "%d" на номер страницы...
'perPage' =>10, //показать 10 элементов на странице
'дельта' => 5,
'itemData'=>$данные,
);
$pager= & Pager::factory($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
?>
<html>
<голова>
<script type="text/javascript"language="javascript">
varn_pages =<?phpecho$n_pages?>;
функцияrevealDiv(n)
{
for(varcount=1;count<= n_pages;count++){
document.getElementById("page"+count).style.display ='none';
}
document.getElementById("page"+n).style.display ='block';
}
</скрипт>
<style type="text/css">
div.page{
фон: #FFFF99;
граница-верх: 1 пиксель сплошной#FFBF99;
нижняя граница: 1 пиксель сплошной#FFBF99;
}
</стиль>
</голова>
<тело>
<h1>PEAR::Pagereexample с JavaScript</h1>
<?phpecho$links['pages'];?>
<час />
<?php
for($i=1;$i<=$n_pages; ++$i){
echo'<div class="page" id="page'.$i.'">';
echo'<h2>Страница '.$i.'</h2>';
foreach($pager->getPageData($i)as$item){
echo'Item '.$item.'<br />';
}
эхо'</div>';
}
?>
<час />
<script type="text/javascript"language="javascript">
раскрытьDiv(1);
</скрипт>
</тело>
</html>
В примере все данные подкачки помещаются в тег div и определяются два важных параметра: путь (пустой) и имя_файла. Изначально предполагалось, что имя_файла должно быть именем файла ссылки, но здесь оно заменено на javascript.
Пример битвы Ajax включает три файла: page.html, server.php, testdata.php.
страница.html
Используйте динамический javascript--server.php для обработки данных и вызовите HTML_AJAX.replace('target', 'testdata.php'), чтобы заменить содержимое div на идентификатор цели.
ОБЫЧНЫЙ ТЕКСТ
PHP:
<html>
<тело>
<h1>PEAR::Пример Pager с AJAX</h1>
<script type="text/javascript"src="server.php?client=all"></script>
<div id="target">Я цель</div>
<тип сценария="текст/javascript">
HTML_AJAX.replace('цель', 'testdata.php');
</скрипт>
</тело>
</html>
testdata.php
Это очень простая программа PHP, которая получает данные подкачки и выводит
ОБЫЧНЫЙ ТЕКСТ
в формате HTML.
PHP:
<?php
require_once'Pager/Pager.php';
$data=range(1,100);//массив данных для разбиения на страницы
$pager_params=массив(
'mode' =>'Скользящий',
'append' =>false, //не добавлять параметры GET к URL-адресу
'путь' =>'',
'fileName'=>'javascript:HTML_AJAX.replace('target','testdata.php?pageID=%d');', //Пейджер заменяет "%d" на номер страницы...
'perPage' =>10, //показать 10 элементов на странице
'дельта' => 1,
'itemData'=>$данные,
);
$pager= & Pager::factory($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
echo'<p>Этот контейнер загружается с помощью AJAX-вызова</p>';
echo'<p><span class="datetime">DateTime: '.date('Ymd H:i:s').'</span></p>';
echo'<h3>Page '.$pager->getCurrentPageId().'</h3>';
foreach($pager->getPageData()as$item){
echo'Item '.$item.'<br />';
}
echo'<hr />'.$pager->links;
?>
Наконец, вставьте код скрытого рабочего сервера server.php и используйте HTML_AJAX_Server для обработки таких проблемных вещей, как ajax
PLAIN TEXT
.
PHP:
<?php
включить «HTML/AJAX/Server.php»;
$server=newHTML_AJAX_Server();
$server->handleRequest();
?>