Un code php pour afficher une pagination, avec l'appel en html pour le tester. Cela affiche juste les numéros de pages sur lesquels on clique, rien d'autre. Pas de code pour accéder à une base de données et sélectionner les enregistrements à afficher, ça se trouve partout. L'affichage de la pagination aussi, mais celui-là est vraiment simple. Pas de css de mise en forme.
Un copier-coller du code, en un seul fichier php.
Source / Exemple :
<?php
/*
$n : la page à afficher
$ntot : le nombre total de pages
function Pagination ($n, $ntot)
{
$url = $_SERVER['PHP_SELF']."?page=";
$deb = 1; // l'étendue totale commence à la page 1
$N = array(); // tableau pour mettre les valeurs de pagination (début, -5, -2, -1, +1, +2, +5, fin)
echo 'Page '.$n.' de '.$ntot.'<br />';
if ($ntot == 1) return; // s'il n'y a qu'une page on s'arrête
if ($n > 1) $N['deb'] = $deb; // début = page 1 si on est pas sur la première page
if ($n < $ntot) $N['fin'] = $ntot; // fin = dernière page si on n'y est pas déjà
// Calcul : les pages précédentes
if ($n-1 >= $deb)
{ $N['m1'] = $n-1;
if ($n-2 >= $deb)
{ $N['m2'] = $n-2;
if ($n-5 >= $deb)
{ $N['m5'] = $n-5;
}
}
if (($N['m1'] == $N['deb']) || ($N['m2'] == $N['deb']) ||($N['m5'] == $N['deb'])) unset ($N['deb']);
}
// Calcul : les pages suivantes
if ($n+1 <= $ntot)
{ $N['p1'] = $n+1;
if ($n+2 <= $ntot)
{ $N['p2'] = $n+2;
if ($n+5 <= $ntot)
{ $N['p5'] = $n+5;
}
}
if (($N['p1'] == $N['fin']) || ($N['p2'] == $N['fin']) ||($N['p5'] == $N['fin'])) unset ($N['fin']);
}
// Liens vers les pages précédentes
if (isset ( $N['deb'])) echo '<a title="Début : Page '.$N['deb'].'" href="'.$url.$N['deb'].'" class="pagenav">« </a>';
if (isset ( $N['m5'])) echo ' <a title="Page '.$N['m5'].'" href="'.$url.$N['m5'].'" class="pagenav">'.$N['m5'].' </a>';
if (isset ( $N['m2'])) echo ' <a title="Page '.$N['m2'].'" href="'.$url.$N['m2'].'" class="pagenav">'.$N['m2'].' </a>';
if (isset ( $N['m1'])) echo '<a title="Page '.$N['m1'].'" href="'.$url.$N['m1'].'" class="pagenav">'.$N['m1'].' </a>';
// La page actuelle
echo $n." ";
// Liens vers les pages suivantes
if (isset ( $N['p1'])) echo '<a title="Page '.$N['p1'].'" href="'.$url.$N['p1'].'" class="pagenav">'.$N['p1'].' </a>';
if (isset ( $N['p2'])) echo '<a title="Page '.$N['p2'].'" href="'.$url.$N['p2'].'" class="pagenav">'.$N['p2'].' </a> ';
if (isset ( $N['p5'])) echo '<a title="Page '.$N['p5'].'" href="'.$url.$N['p5'].'" class="pagenav">'.$N['p5'].' </a> ';
if (isset ( $N['fin'])) echo '<a title="Fin: Page '.$N['fin'].'" href="'.$url.$N['fin'].'" class="pagenav">» </a>';
} // Pagination()
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
</head>
<body>
<?php
$pagetot=30;
if (!isset($_GET['page']))Pagination (1, $pagetot);
else Pagination ($_GET['page'], $pagetot);
?>
</body>
</html>
Conclusion :
J'espère que ça pourra servir.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.