En tant que développeur PHP, la bibliothèque de classes Pear est probablement très utile. Nous savons que Pear::Pager est spécialisé dans la gestion de la pagination et que Pear::HTML_AJAX est une bibliothèque de classes pour les applications Ajax. Mais Pager n'est pas seulement utilisé pour les liens de pagination en HTML, il est déjà prêt pour Ajax, qui est plus populaire que Super Girl. Voyons comment ces deux packages sont intégrés et appliqués.
Téléavertisseur et Javascript
Maintenant que nous avons franchi la première étape, Pager peut déjà créer des liens JavaScript. L'intégration avec Ajax devrait être possible en théorie. Voici un exemple de pagination Pager et JavaScript :
TEXTE PLAIN.
PHP :
require_once'Pager/Pager.php';
$data=range(1,100);//un tableau de données à paginer
$pager_params=tableau(
'mode' =>'Coulissant',
'append' =>false, //n'ajoute pas les paramètres GET à l'url
'chemin' =>'',
'fileName'=>'javascript:revealDiv(%d)', //Pager remplace "%d" par le numéro de page...
'perPage' =>10,//afficher 10 éléments par page
'delta' =>5,
'itemData'=>$données,
);
$pager= & Pager::factory($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
?>
<html>
<tête>
<script type="text/javascript"langue="javascript">
varn_pages =<?phpecho$n_pages?>;
fonctionrevealDiv(n)
{
pour(varcount=1;count<= n_pages;count++){
document.getElementById("page"+count).style.display ='none';
}
document.getElementById("page"+n).style.display ='block';
}
</script>
<style type="text/css">
div.page{
arrière-plan :#FFFF99 ;
bordure supérieure : 1px solid#FFBF99 ;
bordure inférieure : 1px solid#FFBF99 ;
}
</style>
</tête>
<corps>
<h1>PEAR : Pagerexample avec JavaScript</h1>
<?phpecho$links['pages'];?>
<heure />
<?php
pour($i=1;$i<=$n_pages; ++$i){
echo'<div class="page" id="page'.$i.'">';
echo'<h2>Page '.$i.'</h2>';
foreach($pager->getPageData($i)as$item){
echo'Item '.$item.'<br />';
}
écho'</div>';
}
?>
<heure />
<script type="text/javascript"langue="javascript">
révélerDiv(1);
</script>
</corps>
</html>
Dans l'exemple, toutes les données de pagination sont placées dans une balise div et deux paramètres importants sont définis : path (vide) et fileName fileName était initialement censé être le nom de fichier du lien, mais il est remplacé ici par javascript.
L'exemple de bataille Ajax comprend trois fichiers page.html, server.php, testdata.php
page.html
Utilisez javascript dynamique--server.php pour traiter les données et appelez HTML_AJAX.replace('target', 'testdata.php') pour remplacer le contenu du div par l'identifiant de la cible.
TEXTE CLAIR
PHP :
<html>
<corps>
<h1>PEAR::Pagerexample avec AJAX</h1>
<script type="text/javascript"src="server.php?client=all"></script>
<div id="target">Je suis la cible</div>
<script type="text/javascript">
HTML_AJAX.replace('target', 'testdata.php');
</script>
</corps>
</html>
testdata.php
Il s'agit d'un programme PHP très simple qui récupère les données de pagination et génère
du TEXTE PLAIN
HTML.
PHP :
<?php
require_once'Pager/Pager.php';
$data=range(1,100);//un tableau de données à paginer
$pager_params=tableau(
'mode' =>'Coulissant',
'append' =>false, //n'ajoute pas les paramètres GET à l'url
'chemin' =>'',
'fileName'=>'javascript:HTML_AJAX.replace('target','testdata.php?pageID=%d');', //Pager remplace "%d" par le numéro de page...
'perPage' =>10,//afficher 10 éléments par page
'delta' =>1,
'itemData'=>$données,
);
$pager= & Pager::factory($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
echo'<p>Ce conteneur est chargé avec un appel 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;
?>
Enfin, collez le code du serveur de travail en coulisses.php et utilisez HTML_AJAX_Server pour gérer les choses gênantes comme ajax
.
PHP :
<?php
include'HTML/AJAX/Server.php';
$server=newHTML_AJAX_Server();
$server->handleRequest();
?>