Bonjour,

J'ai réussis à faire une pagination donc en gros j'affiche 20 élément de ma requette sur les 1000 éléments, là sa marche par contre je perd toujours les champs mis sur mon formulaire.

exemple je fais une recherche sur tous ce qui concerne l'année 2010 sa me sort les 50 premier élément sur ma page et en bas il me dit que j'ai encore 5 page ( << 1 2 3 4 5 ) si je clique sur la page 2 ou 3... je perd ma recherche de 2010 et c'est comme si ma requête repartait à 0.

Du coups là je suis un peu perdu es-ce que je garde en variable de session mes champs, es-ce que je les passes en $_GET??

si quelqu'un à une idée ou une solution merci de m'éclairer sur mon problème je sais qu'il devrait y avoir une solution plus pratique.

Voici la fonction que j'utilise sa peu peu-être vous aider
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
 
 
//permet d'avoir plusieur page pour une requette
function barre_navigation ($nb_total, $nb_affichage_par_page, $debut, $nb_liens_dans_la_barre) {
 
	$barre = '';
 
	// on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
	if ($_SERVER['QUERY_STRING'] == "") {
		$query = $_SERVER['PHP_SELF'].'?debut=';
	}
	else {
		$tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
		$nb_element = count ($tableau);
		if ($nb_element == 1) {
			$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
		}
		else {
			if ($tableau[0] == "") {
				$query = $_SERVER['PHP_SELF'].'?debut=';
			}
			else {
				$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'debut=';
			}
		}
	}
 
	// on calcul le numéro de la page active
	$page_active = floor(($debut/$nb_affichage_par_page)+1);
	// on calcul le nombre de pages total que va prendre notre affichage
	$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);
 
	// on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
	// exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
	if ($nb_liens_dans_la_barre%2==0) {
		$cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1;
		$cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2);
	}
	else {
		$cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2));
		$cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2));
	}
 
	if ($cpt_deb1 <= 1) {
		$cpt_deb = 1;
		$cpt_fin = $nb_liens_dans_la_barre;
	}
	elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) {
		$cpt_deb = $cpt_deb1;
		$cpt_fin = $cpt_fin1;
	}
	else {
		$cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1;
		$cpt_fin = $nb_pages_total;
	}
 
	if ($nb_pages_total <= $nb_liens_dans_la_barre) {
		$cpt_deb=1;
		$cpt_fin=$nb_pages_total;
	}
 
	// si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
	if ($cpt_deb != 1) {
		$cible = $query.(0);
		$lien = '<A HREF="'.$cible.'">&lt;&lt;</A>&nbsp;&nbsp;';
	}
	else {
		$lien='';
	}
	$barre .= $lien;
 
	// on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
	for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) {
		if ($cpt == $page_active) {
			if ($cpt == $nb_pages_total) {
				$barre .= $cpt;
			}
			else {
				$barre .= $cpt.'&nbsp;-&nbsp;';
			}
		}
		else {
			if ($cpt == $cpt_fin) {
				$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
				$barre .= "'>".$cpt."</A>";
			}
			else {
 
				$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
				$barre .= "'>".$cpt."</A>&nbsp;-&nbsp;";
			}
		}
	}
 
	$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
	if (($nb_total % $nb_affichage_par_page) == 0) {
		$fin = $fin - $nb_affichage_par_page;
	}
 
		// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
	if ($cpt_fin != $nb_pages_total) {
		$cible = $query.$fin;
		$lien = '&nbsp;&nbsp;<A HREF="'.$cible.'">&gt;&gt;</A>';
	}
	else {
		$lien='';
	}
	$barre .= $lien;
 
	return $barre;
}
Merci d'avance