J'ai trouvé sur un site un système de pagination en PHP très bien fait. Le problème c'est que je n'arrive pas à faire passer une variable. En fait j'ai besoin de transmettre la variable suivante dans l'adresse: categorie=$categorie.
Je ne sais pas du tout où la placer dans le code pour que quand je clique sur un numéro de page, la variable apparaisse dans l'adresse. Pour l'instant l'adresse qui s'affiche est :
CODE
http://www.monsite.fr?page=2
(les messages n'apparaisse pas) au lieu deCODE
http://www.monsite.fr?page=2&categorie=$categorie
Merci pour votre aide. CODE-BOX
<?php
function pagination($current_page, $nb_pages, $link='?page=%d', $around=3, $firstlast=1)
{
$pagination = '';
if ( !ereg('%d', $link) ) $link .= '%d';
if ( $nb_pages > 1 ) {
// Lien précédent
if ( $current_page > 1 )
$pagination .= '<a class="prevnext" href="'.sprintf($link, $current_page-1).'" title="Page précédente">« Précédent</a>';
else
$pagination .= '<span class="prevnext disabled">« Précédent</span>';
// Lien(s) début
for ( $i=1; $i<=$firstlast; $i++ ) {
$pagination .= ' ';
$pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// ... après pages début ?
if ( ($current_page-$around) > $firstlast+1 )
$pagination .= ' ...';
// On boucle autour de la page courante
$start = ($current_page-$around)>$firstlast ? $current_page-$around : $firstlast+1;
$end = ($current_page+$around)<=($nb_pages-$firstlast) ? $current_page+$around : $nb_pages-$firstlast;
for ( $i=$start; $i<=$end; $i++ ) {
$pagination .= ' ';
if ( $i==$current_page )
$pagination .= '<span class="current">'.$i.'</span>';
else
$pagination .= '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// ... avant page nb_pages ?
if ( ($current_page+$around) < $nb_pages-$firstlast )
$pagination .= ' ...';
// Lien(s) fin
$start = $nb_pages-$firstlast+1;
if( $start <= $firstlast ) $start = $firstlast+1;
for ( $i=$start; $i<=$nb_pages; $i++ ) {
$pagination .= ' ';
$pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// Lien suivant
if ( $current_page < $nb_pages )
$pagination .= ' <a class="prevnext" href="'.sprintf($link, ($current_page+1)).'" title="Page suivante">Suivant »</a>';
else
$pagination .= ' <span class="prevnext disabled">Suivant »</span>';
}
return $pagination;
}
?>
function pagination($current_page, $nb_pages, $link='?page=%d', $around=3, $firstlast=1)
{
$pagination = '';
if ( !ereg('%d', $link) ) $link .= '%d';
if ( $nb_pages > 1 ) {
// Lien précédent
if ( $current_page > 1 )
$pagination .= '<a class="prevnext" href="'.sprintf($link, $current_page-1).'" title="Page précédente">« Précédent</a>';
else
$pagination .= '<span class="prevnext disabled">« Précédent</span>';
// Lien(s) début
for ( $i=1; $i<=$firstlast; $i++ ) {
$pagination .= ' ';
$pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// ... après pages début ?
if ( ($current_page-$around) > $firstlast+1 )
$pagination .= ' ...';
// On boucle autour de la page courante
$start = ($current_page-$around)>$firstlast ? $current_page-$around : $firstlast+1;
$end = ($current_page+$around)<=($nb_pages-$firstlast) ? $current_page+$around : $nb_pages-$firstlast;
for ( $i=$start; $i<=$end; $i++ ) {
$pagination .= ' ';
if ( $i==$current_page )
$pagination .= '<span class="current">'.$i.'</span>';
else
$pagination .= '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// ... avant page nb_pages ?
if ( ($current_page+$around) < $nb_pages-$firstlast )
$pagination .= ' ...';
// Lien(s) fin
$start = $nb_pages-$firstlast+1;
if( $start <= $firstlast ) $start = $firstlast+1;
for ( $i=$start; $i<=$nb_pages; $i++ ) {
$pagination .= ' ';
$pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// Lien suivant
if ( $current_page < $nb_pages )
$pagination .= ' <a class="prevnext" href="'.sprintf($link, ($current_page+1)).'" title="Page suivante">Suivant »</a>';
else
$pagination .= ' <span class="prevnext disabled">Suivant »</span>';
}
return $pagination;
}
?>