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 :
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
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">« 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; }
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
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 = '&key='.$_GET['key'].'&cp='.$_GET['cp'].'&trie='.$_GET['trie'].''; } else if($id_de_la_sous_categorie==2){ $variable_pagination = '&key='.$_GET['key'].'&cp='.$_GET['cp'].'&trie='.$_GET['trie'].''; } else{ $variable_pagination = '&key='.$_GET['key'].'&cp='.$_GET['cp'].'&prix='.$_GET['prix'].'&trie='.$_GET['trie'].''; }.. pas assez doué quoi!
Un coup de pouce serait bienvenue.
Merci
Partager