Pagination + fichier css

Soyez le premier à donner votre avis sur cette source.

Vue 7 978 fois - Téléchargée 953 fois

Description

// Pagination style : (< Préc. 1 2 3 4 5 6 7 ... 14 Suiv.>)
// (< Préc. 1 ... 4 5 6 7 8 9 10 ... 14 Suiv.>)
// (< Préc. 1 ... 8 9 10 11 12 13 14 Suiv.>)

Je sais qu'il existe plusieurs autres méthodes, mais étant un débutant et voulant essayer de créer moi-même ma pagination, je crois avoir réussi quelque chose d'assez bien et très simple d'utilisation.

Une seule variable à modifier (au besoin) dans le code.
Un exemple sur le site : http://passioncharmes.com/colliers.php

Source / Exemple :


// Fichier : pagination.css

ul.pagination { margin: 6px 0; text-align: center; font-weight: bold;}
ul.pagination li {
	background: #fff;
	display: inline;
	margin: 0;
	padding: 0;
	overflow: hidden;
}
ul.pagination li span, #lien_off {

  • display:inline; *zoom:1;
line-height: 20px; padding: 2px 8px; border: 1px solid #C0A062; } #lien_off { border: 1px solid #ccc; color: #ccc; } ul.pagination a {
  • display:inline; *zoom:1;
background: #fff; line-height: 20px; padding: 2px 8px; text-decoration: none; border: 1px solid #ccc; } ul.pagination a:hover, ul.pagination a:active, ul.pagination a:focus { background: #C0A062; color: #fff; text-decoration: none; } // Fichier : pagination.php <?php // Pagination style : (< Préc. 1 2 3 4 5 6 7 ... 14 Suiv.>) // (< Préc. 1 ... 4 5 6 7 8 9 10 ... 14 Suiv.>) // (< Préc. 1 ... 8 9 10 11 12 13 14 Suiv.>) // // Au préalable, récupérer le numéro de la page indiquée dans l'adresse (.php?page=x) // et définir le nombre total de pages ($nbDePages) // // Appeller ensuite la fonction par : // Pagination($page, $nbDePages); // // function Pagination($page, $nbDePages) { $nb_AvAp = 3; // Nombre de pages à afficher avant et après la page courante (modifier au besoin) echo '<div>'; echo '<ul class="pagination">'; // Activation du lien "< Préc." ou pas if ($page > 1) { echo '<li><a href="?page=' . ($page - 1) . '">< Préc.</a></li>&nbsp;'; } else {echo '<li><span id="lien_off">< Préc.</span></li>&nbsp;';} // Affichage des liens de page en ligne si (($nb_AvAp * 2) + 2) ou moins [sans le "1 ..." et le "... dernière_page"] if ($nbDePages <= ($nb_AvAp * 2) + 2) { for($i = 1; $i <= $nbDePages; $i++) { if($i == $page) {echo '<li>&nbsp;<span>' . $i . '</span>&nbsp;</li>';} else {echo '<li>&nbsp;<a href="?page=' . $i . '">' . $i . '</a>&nbsp;</li>';} } } // Affichage des liens de page selon le format : 1 2 3 4 5 6 7 8 [lorsque la page en cours <= $nb_AvAp + 1, avec ($nb_AvAp * 2) + 1) liens max.] elseif ($page <= $nb_AvAp + 1) { for($i = 1; $i <= (($nb_AvAp * 2) + 1) && $i <= $nbDePages; $i++) { if($i == $page) {echo '<li>&nbsp;<span>' . $i . '</span>&nbsp;</li>';} else {echo '<li>&nbsp;<a href="?page=' . $i . '">' . $i . '</a>&nbsp;</li>';} } } // Affichage des liens de page selon le format : 1 ... 2 3 4 5 6 7 8 [lorsque la page en cours = $nb_AvAp + 2 et la dernière page sera affichée précédée des "..."] elseif ($page == $nb_AvAp + 2) { echo '<li>&nbsp;<a href="?page=1">1</a>&nbsp;</li>&nbsp;...&nbsp;&nbsp;'; for($i = $page - $nb_AvAp; $i <= $page + $nb_AvAp; $i++) { if($i == $page) {echo '<li>&nbsp;<span>' . $i . '</span>&nbsp;</li>';} else {echo '<li>&nbsp;<a href="?page=' . $i . '">' . $i . '</a>&nbsp;</li>';} } } // Affichage des liens de pages selon le format, par ex., : 1 ... 3 4 5 6 7 8 9 [lorsque la page en cours > 2 et la dernière page sera affichée précédée des "..."] elseif ($page - $nb_AvAp > 2 && $page < $nbDePages - 2) { echo '<li>&nbsp;<a href="?page=1">1</a>&nbsp;</li>&nbsp;...&nbsp;&nbsp;'; for($i = $page - $nb_AvAp; $i <= $page + $nb_AvAp && $i <= $nbDePages; $i++) { if($i == $page) {echo '<li>&nbsp;<span>' . $i . '</span>&nbsp;</li>';} else {echo '<li>&nbsp;<a href="?page=' . $i . '">' . $i . '</a>&nbsp;</li>';} } } // Affichage des liens de page selon le format, par ex., : 1 ... 8 9 10 11 12 13 14 [lorsque la page en cours >= $nbDePages - 2, la dernière page affichée sans précéder des "..."] elseif ($page >= $nbDePages - 2) { echo '<li>&nbsp;<a href="?page=1">1</a>&nbsp;</li>&nbsp;...&nbsp;&nbsp;'; if ($nb_AvAp == 1 && $page == $nbDePages - 2) {$moins = 1;} else {$moins = 0;} for($i = $nbDePages - ($nb_AvAp * 2) - $moins; $i <= $page + $nb_AvAp && $i <= $nbDePages; $i++) { if($i == $page) {echo '<li>&nbsp;<span>' . $i . '</span>&nbsp;</li>';} else {echo '<li>&nbsp;<a href="?page=' . $i . '">' . $i . '</a>&nbsp;</li>';} } } else {echo '';} // Affichage de la dernière, suivie des "...", si nécessaire if ($page + $nb_AvAp < $nbDePages && $nbDePages > ($nb_AvAp * 2) + 2) { echo '&nbsp;&nbsp;...&nbsp;<li>&nbsp;<a href="?page=' . $nbDePages . '">' . $nbDePages . '</a>&nbsp;</li>'; } // Activation du lien "Suiv. >" ou pas if ($page < $nbDePages) { echo '&nbsp;<li><a href="?page=' . ($page + 1) . '">Suiv. ></a></li>'; } else {echo '&nbsp;<li><span id="lien_off">Suiv. ></span></li>';} echo '</ul>'; echo '</div>'; } ?>

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
5
Date d'inscription
mercredi 30 juillet 2008
Statut
Membre
Dernière intervention
29 janvier 2014

Comment l'implémenter ?

Est que c'est pas possible de donner un exemple complet avec des requetes ?
Messages postés
2
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
2 novembre 2011

Laissez-moi un p'tit commentaire si vous l'essayez... ;)

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.