Formulaire php

laurent -  
 Utilisateur anonyme -
Je tiens a precisé que je suis débutant en php!

La question est la suivante :
J'ai 1 liste déroulante alimentée par une base de données et j'aimerai récupérer la valeur sélectionnée en php et je sais pas trop comment faire ???
Si quelqu'un sait ...

8 réponses

  1. Nico
     
    tu souhaites récupérer la valeur sélectionnée dans ta liste déroulante :
    la méthode :
    tu as ta liste : <select name=liste> ... </select>
    tu crés une fonction selection() que tu places dans la methode onchange de select : <select name=liste onchange="selection()">...
    dans ta fonction selection() tu as :
    <script>
    function selection() {
    // tu récupéres la valeur
    val=document.form.liste.options[document.form.liste.selectedIndex].value
    // tu fais ce que tu veux de val ensuite
    }
    </script>

    voila c'est tout
    A@++
    0
    1. laurent
       
      Merci
      Mais on peut pas le faire en php, en utilisant $_POST['Nom_Select'] ????
      0
    2. laurent
       
      J'ai testé ce ke tu m'as donné mais ça ne fonctionne pas ça doit être a cause des valeurs :
      val=document.form.liste.options[document.form.liste.selectedIndex].value

      A quoi correspond liste et pour form est ce que je mets le nom ? Si tu pouvais apporter plus de précisions merci
      0
    3. Nico
       
      tu peux le faire en php, tu récupéres simplement la valeur du nom de ta liste comme tu le ferais pour un champs text.
      $_POST["liste"] ou autre nom

      sinon form c'est le nom du formulaire
      et liste le nom de ta liste déroulante
      0
    4. laurent > Nico
       
      Je viens de tester avec ta premiere suggestion mais ca marche pas
      j'ai ma liste et j'ai un bouton pour valider et lorsque l'on clique sur le bouton j'appelle la méthode, en gros ca donne :
      <input type="button" name="Submit" value="Valider" onClick="javascript:selection();">
      et la méthode selection :
      function selection(){
      // on récupére la valeur
      alert("methode selection");
      val = document.myform.Libelle.options[document.myform.Libelle.selectedIndex].value;
      alert("la valeur est : "+val);
      }
      j'ai ajouté des "alert" pour vérifier parceke ca ne marchait pas

      En fait quand j'excéute le programme : lorsque je clique sur le bouton ca me donne rien, il n'y a meme pas les fenetres alert et je sais pas pourquoi ???
      0
    5. laurent > laurent
       
      Oublies ce que j'ai noté juste avant, je viens de le faire en php et ça marche. MErci

      Sinon j'ai une autre question
      j'ai changé le boutn valider en un submit et quand je clique sur un élément de la liste déroulante, puis sur le bouton : il me réaffiche la page mais il perds ou il était cad que après dans la liste j'ai pour élément selectionné le premier élément. c'est kom si je ne l'avait pas choisit mais ca c'est a l'affichage parceke dans le programme c'est bon. Mais kom c'est un produit destiné a un client j'aimerai savoir s'il est possible de garder a l'affichage le choix selectionne avant d'avoir appuyé sur le bouton ???
      0
  2. Nico
     
    Désolé camarade, mais fallait manger.
    comment garder ta sélection apres validation ?
    tout d'abord, ta liste est elle statique ou vient elle d'une base de données.
    0
    1. laurent
       
      elle vient d'une base de données
      mais ca me fait ca avec d'autres elements de ma page .
      Par exemple, j'ai un champ texte dans lequel on saisit une valeur et on valide avec un bouton de type submit. Quand je clique sur ce bouton valider la valeur saisie disparaît
      et ca me fait la même chose avec cette liste déroulante, ...
      voilà
      0
  3. Nico
     
    J'ai deux soluces :
    en javascript :
    <html>
    <body>
    Votre choix : <? echo $liste ?>
    <br>

    <form name=frm>
    <select name=liste>
    <option value=c1>choix1
    <option value=c2 >choix2
    <option value=c3>choix3
    <option value=c4>choix4
    </select>
    <input type=submit value="ok">
    <script>
    for(i=0;i<document.frm.liste.options.length;i++) {

    if(document.frm.liste.options[i].value=="<? echo $liste ?>") document.frm.liste.options[i].selected=true
    }
    </script>
    </form>
    </body>

    </html>

    en php :
    qd tu construis ta liste grace à ta base, et bien tu testes chaque élément de ta base. Ainsi qd l'élement de ta base correspond à ta sélection tu fais un echo "selected".
    ex:
    <select name=liste>
    <?
    while($line=mysql_fetch_row$rs)) {
    /// lecture de ta base
    if($line[0]=='$liste') echo "<option value=".$line[0]." selected>".$line[0];
    else echo "<option value=".$line[0]." >".$line[0];
    }
    ?>
    </select>

    voila
    0
    1. laurent
       
      Oui merci, mais lis le dernier msg ke g ecrit ca répond pas réellement a ce ke je veux, les différentes valeurs de la liste déroulante s'affiche y a pas de problème par contre kan tu choisis une valeur t'as un curseur qui pointe sur la valeur saisie et kan tu cliques sur le bouton le curseur perd son information cad la valeur choisie auparavant mais ca c'est a l'affichage et je sais pas pourquoi c'est kom si j'avais fait un refresh
      0
  4. Nico
     
    <input type=text name=val value="<? echo $_POST['val'] ?>">

    tu récupéres sa valeur, si elle est vire y a rien sinon sa valeur
    voila
    0
    1. laurent
       
      ok ca marche
      mais avec une liste déroulante, tu fais ca comment ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nico
     
    je te l'ai indiqué ci-dessus dans "j'ai deux soluces ...."
    0
    1. laurent
       
      Bonjour,
      est-ce kil est possible de le faire avec des frames parceke dans mon bureau c ce kon m'a conseillé ?
      0
  7. massata
     
    Bonjour!!!!!!!
    j'ai un formulaire en php mais j'arrive pas à récupérer les données venant du champ de texte mais aussi aussi à partir du choix avec la case à cocher.
    En effet il crée l'enregistrement dans la base de données mais avec des valeurs égales à zéro.
    0
  8. Issam
     
    Bonjour Nico

    Dans ton code :

    <select name=liste>
    <?
    while($line=mysql_fetch_row$rs)) {
    /// lecture de ta base
    if($line[0]=='$liste') echo "<option value=".$line[0]." selected>".$line[0];
    else echo "<option value=".$line[0]." >".$line[0];
    }
    ?>
    </select>

    tu mets quoi dans $liste stp?? Car je voudrais qu'après validation de l'élément dans ma lite déroulante, mon choix reste sélectionné. Merci
    0
  9. Utilisateur anonyme
     
    Bonjour Nico

    Dans ton code :

    <select name=liste>
    <?
    while($line=mysql_fetch_row$rs)) {
    /// lecture de ta base
    if($line[0]=='$liste') echo "<option value=".$line[0]." selected>".$line[0];
    else echo "<option value=".$line[0]." >".$line[0];
    }
    ?>
    </select>

    tu mets quoi dans $liste stp??
    0