Problème de passage à la page suivante

Résolu
Abou Zar -  
Pilow Messages postés 400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je developpe mon site avec PHP/Mysql.
J'ai fait une page de recherche dans laquelle l'utilisateur entre ses terme de recherches et je veux afficher page par page les resultats.
Problème:
Quand je clique sur "page suivante" il me dit que la variable recherche n'est pas defini. Or recherche est bien defini par $recherche = $_POST["recherche"]; j'ai aussi tenté $recherche = $_REQUEST["recherche"];mais c'est le meme problème.
Voici la fonction de mes liens "page suivante" et "page precedente":


function displayNextPreviousButtons($limite,$total,$nb,$page)
{
$limiteSuivante = $limite + $nb;
$limitePrecedente = $limite - $nb;

if($limite != 0) {
echo '<a href="'.$page.'?limite='.$limitePrecedente.'">Page précédente</a>';
}


if($limiteSuivante < $total) {
echo '<a href="'.$page.'?limite='.$limiteSuivante.'">Page Suivante</a>';
}

}

Merci beaucoup de m'aider!

5 réponses

Pilow Messages postés 400 Date d'inscription   Statut Membre Dernière intervention   71
 
Bonjour,

A priori de ce que je lis tu crée des liens
<a href="'.$page.'?limite='.$limiteSuivante.'">Page Suivante</a>


Mais si tu clique sur ce lien tu n'aura aucun $_POST, juste un $_GET['limite']
1
Abou Zar Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour l'eclaircissement que vous m'avez approté.
Où est ce que je dois inserrer le "$_GET['limite'] " que vous avez proposé d'inserrer.
0
Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
il faut soit que tu passes les options de recherches par GET pour que ça reste dans l'url

ou que tu les mettent dans une session

parce qu'en fait quand tu envois ton formulaire ça envois les variables post et elles sont détruites a la fin de l'exécution donc tu ne peux pas t'en resservir
0
Pilow Messages postés 400 Date d'inscription   Statut Membre Dernière intervention   71
 
<a href="'.$page.'?limite='.$limiteSuivante.'">Page Suivante</a>


La partie en gras correspond a ton $_GET['limite']

Si tu cliques sur le lien page suivante, tu sera redirigé vers $page avec comme variable $_GET['limite']

Comme l'a bien dit Atropa :
parce qu'en fait quand tu envois ton formulaire ça envois les variables post et elles sont détruites a la fin de l'exécution donc tu ne peux pas t'en resservir 


Les $_POST que tu utilisais dans ta page n'existeront plus une fois que tu aura cliqué sur le lien de redirection.
0
Pilow Messages postés 400 Date d'inscription   Statut Membre Dernière intervention   71
 
Une technique similaire que j'ai utilisé et que je te conseil pour éviter les redirections avec pleins de $_GET etc.. :

Lors du chargement de la page "principale" tu défini un nombre d'élément maximum par page (Par exemple : 10 résultats par page), puis tu fais une boucle pour créer plusieurs div, contenant chacun 10 resultats maximum.

Le premier tu l'affiche normal et les autres tu met : <div style="display:none">
Après tu affiche ou non les liens "pages suivante" "page précédente" en fonction de la page ou tu es et tu met dans ces liens
<a onclick="javascript:change_result($numérodivprécédent)"> page précédente</a>

Et ta fonction change_result() fais : le div actuel : style=display:none et la page précédente style=display:"" ou page suivante en fonction de ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pilow Messages postés 400 Date d'inscription   Statut Membre Dernière intervention   71
 
Je viens de faire un tit truc qui marche si tu veux :


CSS
label.precedent {
	font-size:12px;
	font-weight:bold;
	font-family:Arial, Helvetica, sans-serif; 
	float:left;
	display:block;
	width:110px;
	
}
label.suivant {
	font-size:12px;
	font-weight:bold;
	font-family:Arial, Helvetica, sans-serif; 
	float:right;
	display:block;
	width:110px;
}
label.precedent:hover {
        color:#F0F;
}

label.suivant:hover {
        color:#F0F;
}


JAVASCRIPT :
function change_menu(id, action)
{
	document.getElementById(id).style.display = "none";
	id = (action == '-1' ? id - 1 : id + 1)
		document.getElementById(id).style.display = "block";
}


PHP :
$requete = "SELECT * FROM numero ORDER BY numero_Id ASC LIMIT 24";
$resultat = $connexion->query($requete);

$count = 0;
$div = 1;
$tot = $resultat->rowCount();
$ligne = 1;
while ($table = $resultat->fetch())
{
	if ($count == 0)
	{
		echo '<div border="1" id="' . $div . '" style="height:300px;' . ($div == 1 ? '' : 'display:none;') . '">';
		if ($div != 1)
			echo '<label class="precedent"><a onclick="change_menu('. $div . ', \'-1\');">Page précédente</a><label>';
		if ($ligne < $tot - 10)
			echo '<label class="suivant"><a onclick="change_menu('. $div . ', \'+1\');">Page suivante</a></label>';
		echo '<br/>';
		$div++;
	}
	echo $table['numero_Id'].'<br/>';
	if ($count == 10)
		echo 'FIN</div>';
	$count = ($count == 10 ? 0 : $count + 1);
	$ligne++;
}
if ($count != 0)
	echo 'FIN</div>';


EDIT : J'ai pas fais de test if ($resultat) etc .. etc .. :P
0