IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

récupérer une valeur par $_POST et/ou $_Get


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    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
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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!

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    '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

  4. #4
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    j'ai mis </form> à la fin car avant la balise </form> était placée avant le 2ième
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  5. #5
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    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
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  6. #6
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="javascript:document.nomformulaire.submit();"
    dans ton lien (et tu donnes un nom à ton formulaire).

  7. #7
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  8. #8
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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.

  9. #9
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  10. #10
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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");
    }...
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  11. #11
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  12. #12
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    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.

  13. #13
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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

  14. #14
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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

  15. #15
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    voila oui en effet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 ???
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Récupérer une valeur par un lien hypertexte
    Par jyves47 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/01/2014, 18h23
  2. Récupérer une valeur par _POST
    Par beegees dans le forum Langage
    Réponses: 6
    Dernier message: 20/10/2008, 12h38
  3. Réponses: 4
    Dernier message: 06/02/2008, 21h25
  4. Récupérer le maximum d'une valeur par date
    Par Caro30 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/01/2007, 13h56
  5. Trigger : Récupérer la valeur par défaut d'une colonne
    Par mcspr2002 dans le forum Administration
    Réponses: 5
    Dernier message: 12/01/2007, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo