Problème de passage à la page suivante
Résolu
Abou Zar
-
Pilow Messages postés 400 Date d'inscription Statut Membre Dernière intervention -
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!
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!
A voir également:
- Problème de passage à la page suivante
- Impossible de supprimer une page word - Guide
- Passage qwerty azerty - Guide
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : chaque paragraphe doit être espacé de 0,42 cm ou 12 pt du paragraphe qui suit les textes ne doivent pas être en retrait à droite et à gauche après ces modifications, sur quelle page se trouve le titre « la cheminée » dans le chapitre « informations diverses » ? - Guide
- Suivi de modification word - Guide
- Numéro de page word - Guide
5 réponses
Bonjour,
A priori de ce que je lis tu crée des liens
Mais si tu clique sur ce lien tu n'aura aucun $_POST, juste un $_GET['limite']
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']
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
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
<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.
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
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 ...
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 ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de faire un tit truc qui marche si tu veux :
CSS
JAVASCRIPT :
PHP :
EDIT : J'ai pas fais de test if ($resultat) etc .. etc .. :P
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
Où est ce que je dois inserrer le "$_GET['limite'] " que vous avez proposé d'inserrer.