Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton

Le fichier html est identique que celui montré dans le tutorial Pager + AJAX :

[html]
<html>
<body>
<h1>Exemple de PEAR::Pager avec AJAX</h1>

<script type="text/javascript" src="server.php?client=all"></script>

<div id="cible_dont_on_modifie_le_contenu">Je suis là cible</div>

<script type="text/javascript">
    HTML_AJAX.replace('cible_dont_on_modifie_le_contenu', 'testdata.php');
</script>

</body>
</html>

Le fichier testdata.php est un simple script qui récupère des données dans une base de donnée à l'aide de Pager_Wrapper.

L'affichage de ce script va remplacer le contenu du div dans le premier fichier html.

Nous ajoutons aussi la date courante pour prouver qu'on affiche des données "fraîche" et qu'on reconstruit le contenu à chaque appel (C'est à dire à chaque fois qu'on clique sur un lien de navigation)

[php]
<?php
//le fichier Pager_Wrapper a été placé où on peut l'inclure
require_once 'Pager_Wrapper.php';
require_once 'MDB2.php';

//supposons qu'on a une connexion dans  $db

$option_du_pager = array(
    'mode'     => 'Sliding',
    'append'   => false,  //ne pas ajouter les paramètres GET aux url générées
    'path'     => '',
    'fileName' => 'javascript:HTML_AJAX.replace(\'target\',\'testdata.php?pageID=%d\');',  //Pager remplace "%d" par le n° de la page...
    'perPage'  => 10, //afficher 10 éléments par page
    'delta'    => 1,
    'itemData' => $data,
);
$statement = 'SELECT prod_name, prod_description FROM products';

$paged_data = Pager_Wrapper_MDB2($db, $statement, $option_du_pager);
if (PEAR::isError($paged_data)) {
    //Ouch 'y a un stuut, reglez le problème.
}

//affichage des résultats
echo '<p>Ce conteneur est récupéré par un appel AJAX</p>';
echo '<p><span class="datetime">DateTime: '. date('Y-m-d H:i:s') .'</span></p>';
echo '<h3>Page ' . $paged_data['page_numbers']['current'] . '/' . $paged_data['page_numbers']['total'] . '</h3>';
foreach ($paged_data['data'] as $item) 
{
    echo '<strong>' . $item['prod_name'] . '</strong>: ' . $item['prod_description'] . '<br />';
}

//Affichage des liens
echo '<hr />'.paged_data['links'];
?>

En fait vous pouvez observer que c'est le même exemple qu'ici

mais avec quelques petits changement repris d'ici.