Bonsoir,

Je suis confronté à un soucis de pagination que je ne parviens pas à résoudre. Pour le calcul des pages, c'est ok.

Soit la fonction de départ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
    function pagination($current_page, $nb_pages, $link='?page=%d', $around=3, $firstlast=1)
    {
       $pagination = '';
       $link = preg_replace('`%([^d])`', '%%$1', $link);
       if ( !preg_match('`(?<!%)%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">&laquo; Précédent</a>';
          else
             $pagination .= '<span class="prevnext disabled">&laquo; 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 .= ' &hellip;';
 
          // 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 .= ' &hellip;';
 
          // 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 &raquo;</a>';
          else
             $pagination .= ' <span class="prevnext disabled">Suivant &raquo;</span>';
       }
       return $pagination;
    }
A cette fonction, je dois insérer des variables en plus du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
    if($id_de_la_sous_categorie==1){
    $variable_pagination = '&amp;key='.$_GET['key'].'&amp;cp='.$_GET['cp'].'&amptrie='.$_GET['trie'].'';
    }
    else if($id_de_la_sous_categorie==2){
    $variable_pagination = '&amp;key='.$_GET['key'].'&amp;cp='.$_GET['cp'].'&amp;trie='.$_GET['trie'].'';
    }
    else{
    $variable_pagination = '&amp;key='.$_GET['key'].'&amp;cp='.$_GET['cp'].'&amp;prix='.$_GET['prix'].'&amp;trie='.$_GET['trie'].'';
    }
Théoriquement, l'intervention se situe dans la fonction au niveau de $link='?page=%d' mais quelque soit les testes que j'effectue, je ni parvient pas .. pas assez doué quoi!

Un coup de pouce serait bienvenue.

Merci