Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2007, 10h30   #1
Membre régulier
 
Avatar de akara
 
Inscription : juin 2007
Messages : 299
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 299
Points : 81
Points : 81
Par défaut récupérer une valeur par $_POST et/ou $_Get

Bonjour,

Je vais avoir du mal à m'expliquer mais voila

j'ai une page affichage.php , je recupere $id_reg=$_POST['id_reg']; qui vient de l'index.
mais je voudrais aussi la récupréré d'une autre page disont fiche.php où je fait une fil d'ariane et je voudrais revenir sur affichage.php
...<span><a href=\"affichage.php\">".stripslashes($reg['nom'])."</a> </span>...

mais comment envoyé sur affichage $reg['id_reg'] ?
j'ai essayé un input type hidden avec method POST mais que dalle...pas de message d'erreur, rien à l'affichage..
sans forcément passer par la method Get sinon ça change tout pour la page affichage car je recupere 3 $_Post different
akara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 10h33   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Citation:
Envoyé par akara
j'ai essayé un input type hidden avec method POST mais que dalle...pas de message d'erreur, rien à l'affichage..
Mais encore... ?
Sur ta page fiche.php tu as bien défini un formulaire avec un champ hidden de nom id_reg et tu soumets le formulaire ?
Si tu montres pas ce que t'as fait on ne pourra pas dire ce qui bugge!
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 10h46   #3
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
'jour,

2 solutions :
1. Dans fiche.php, mettre effectivement ta variable id_reg dans un champ caché de formulaire et remplacer ton lien <a href=\"affichage.php\">".stripslashes($reg['nom'])."</a> par un lien <a onclick="toto();"> qui va poster ton formulaire.
2. Ecrire une fonction générique pour récupérer des champs de formulaire. Cette fonction regarde successivement $_GET et $_POST pour récupérer éventuellement un paramètre donné. Ensuite, tu utilises cette fonction à la place des appels directs à $_POST. Enfin, tu passes id_reg dans ton URL de lien : <a href=\"affichage.php?id_reg=$id_reg\">".stripslashes($reg['nom'])."</a>

Perso, j'aime bien la deuxième solution car elle offre de la souplesse sur la gestion des formulaires et des paramètres d'URL (disons que la cible d'un formulaire ou d'un lien est agnostique et n'a pas nécessairement besoin de savoir s'il faut récupérer le paramètre par un post ou un get. C'est une sorte d'adaptation du request.getParameter() de J2EE).
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 10h49   #4
Membre régulier
 
Avatar de akara
 
Inscription : juin 2007
Messages : 299
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 299
Points : 81
Points : 81
j'ai mis </form> à la fin car avant la balise </form> était placée avant le 2ième
Code PHP :
1
2
3
4
5
6
echo c'est à dire avant <p>...</p>
mais j'ai vu que ça n'a pa changé grd chose...
echo "<form action=\"affichage.php\" method=\"post\">";
echo "<p><a href=\"index.php\">accueil</a> > <span><a href=\"affichage.php\">".stripslashes($reg['nom'])."</a> </span> >	 <span><a href=\"fiche_commune.php?num_dep=".$dep['num_dep']."\">".stripslashes($dep['nom'])."</a></span> </p>";
echo "<input type=\"hidden\" name=\"id_reg\" value=\"".$reg['id_reg']."\"/>";
echo "</form>";

question requete et tout le tralala y a pa de soucis
akara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 10h56   #5
Membre régulier
 
Avatar de akara
 
Inscription : juin 2007
Messages : 299
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 299
Points : 81
Points : 81
merci pour vos réponses a tous mais je comprend pas pourquoi le inuput hidden n'envoi pa a affichage.php...

Mac peux tu m'en dire plus sur la function générique qui permet de récupérer des champs de formulaire
akara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 11h11   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Ton formulaire ne contient pas de bouton sur lequel cliquer pour poster le formulaire justement sur affichage.php et donc récupérer la valeur du champ hidden.
Donc soit tu fais un bouton a la place de ton lien, soit tu définis l'évènement
Code :
onclick="javascript:document.nomformulaire.submit();"
dans ton lien (et tu donnes un nom à ton formulaire).
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h01   #7
Membre régulier
 
Avatar de akara
 
Inscription : juin 2007
Messages : 299
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 299
Points : 81
Points : 81
Code :
1
2
3
4
5
6
 
echo "<form action=\"affichage.php\" name=\"region\" method=\"POST\" >";
echo "<input type=\"hidden\" name=\"url\" value=\"".$reg['url']."\"/>";
echo "<p><a href=\"index.php\">accueil</a> > <span><a href=\"affichage.php\" onClick=\"javascript:document.region.submit();\">".stripslashes($reg['nom'])."</a> </span> >	 
<span><a href=\"fiche_commune.php?num_dep=".$dep['num_dep']."\">".stripslashes($dep['nom'])."</a></span> </p>";
echo "</form>";
sur affichage il ne reconnait pas id_reg

Code :
1
2
3
...
if(!isset($_POST['motcle']) && !isset($_POST['id_reg']) && !isset($_POST['cp'])){header("Location:index.php");}
...
Et comme il ne reconnait pas id_reg il va sur index.php
akara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h06   #8
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Dans ton formulaire tu n'as pas de champ hidden qui s'appelle id_reg donc il n'y a pas de valeur id_reg postée.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h09   #9
Membre régulier
 
Avatar de akara
 
Inscription : juin 2007
Messages : 299
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 299
Points : 81
Points : 81
Code :
1
2
3
4
5
6
 
echo "<form action=\"affichage.php\" name=\"region\" method=\"POST\" >";
echo "<input type=\"hidden\" name=\"url\" value=\"".$reg['url']."\"/>";
echo "<p><a href=\"index.php\">accueil</a> > <span><a href=\"affichage.php\" onClick=\"javascript:document.region.submit();\">".stripslashes($reg['nom'])."</a> </span> >	 
<span><a href=\"fiche_commune.php?num_dep=".$dep['num_dep']."\">".stripslashes($dep['nom'])."</a></span> </p>";
echo "</form>";
sur affichage il ne reconnait pas id_reg

Code :
1
2
3
...
if(!isset($_POST['motcle']) && !isset($_POST['id_reg']) && !isset($_POST['cp'])){header("Location:index.php");}
...
Et comme il ne reconnait pas id_reg il va sur index.php
akara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h12   #10
Membre régulier
 
Avatar de akara
 
Inscription : juin 2007
Messages : 299
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 299
Points : 81
Points : 81
arf dsl erreur de manipulation je me suis trompé je voulais juste faire un test sur l'url mais bon ça ne change rien avec id_reg

Code :
1
2
3
4
echo "<form action=\"affichage.php\" method=\"post\" name=\"region\">";
	echo "<input type=\"hidden\" name=\"id_reg\" value=\"".$reg['id_reg']."\"/>";
	echo "<p><a href=\"index.php\">accueil</a> > <span><a href=\"affichage.php\" onClick=\"javascript:document.region.submit();\">".stripslashes($reg['nom'])."</a> </span> >	 <span><a href=\"fiche_commune.php?num_dep=".$dep['num_dep']."\">".stripslashes($dep['nom'])."</a></span> </p>";
	echo "</form>";
//affichage.php
...
if(!isset($_POST['motcle']) && !isset($_POST['id_reg']) && !isset($_POST['cp'])){
header("Location:index.php");
}...
akara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h21   #11
Membre régulier
 
Avatar de akara
 
Inscription : juin 2007
Messages : 299
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 299
Points : 81
Points : 81
Code :
1
2
3
4
5
6
7
8
9
10
 
if(!isset($_POST['motcle']) && !isset($_POST['id_reg']) && !isset($_POST['cp']))
{header("Location:index.php");}
.....
if(isset($_POST['motcle'])){ // si recherche par mot-clé
....
}else if(isset($_POST['id_reg'])){ // si recherche par région
$id_reg=$_POST['id_reg']; // récupération de la saisie 
 
.....
mais d'où vient le problème ? je ne vois pas...
akara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h36   #12
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
remplaces onClick par onclick deja. Mais peut etre que le onclick ne marche pas pour un lien, essaies de mettre comme href="" quelquechose d'autre que affichage.php pour voir si c'est le lien qui te dirige ou le onclick justement.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h41   #13
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Citation:
Code :
<a href=\"affichage.php\" onClick=\"javascript:document.region.submit();\">".stripslashes($reg['nom'])."</a>
C'est pas bon, ça : tu ne peux pas avoir un href qui envoie sur la page affichage.php et avoir un onclick qui poste le formulaire, il faut choisir. Ce que fait le navigateur quand tu cliques sur le lien c'est renvoyer vers href en premier donc ton formulaire n'est pas posté. Mets plutôt ceci :

Code :
<a href=\"#\" onClick=\"javascript:document.region.submit();\">".stripslashes($reg['nom'])."</a>
Et sinon, le onclick par rapport au onClick ne devrait pas avoir d'importance, bien qu'il soit préférable de mettre tout en minuscule par rapport à des conventions d'écriture HTML.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 12h50   #14
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Citation:
Envoyé par akara
Mac peux tu m'en dire plus sur la function générique qui permet de récupérer des champs de formulaire
Quelle est la question exactement ? En gros, j'ai écrit une fonction qui ressemble à ça :

Code :
1
2
3
4
5
6
7
8
9
function get_form_param($name) {
    if (isset($_GET[$param])) {
        return $_GET[$param];
    }
    if (isset($_POST[$param])) {
        return $_POST[$param];
    }
    return null;
}
Et après, j'utilise cette fonction comme ça :

Code :
$id_reg = get_form_param("id_reg");
Et $id_reg est null quand le paramètre n'a pas été transmis.

Derrière, qu'on mette method="GET" ou method="POST" dans la balise <form>, ou qu'on fasse un <a href="monscript.php?id_reg=45">, je suis sûr de récupérer la valeur d'id_reg.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 13h15   #15
Membre régulier
 
Avatar de akara
 
Inscription : juin 2007
Messages : 299
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 299
Points : 81
Points : 81
voila oui en effet
Code :
<a href=\"#\" onClick=\"javascript:document.region.submit();\">".stripslashes($reg['nom'])."</a>
c'est ça.. je vous remerci à tout les deux !

Mac pour la fontcion que représente $param ???
akara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h56.


 
 
 
 
Partenaires

Hébergement Web