Choix de variable d'une liste déroulante php

Bonjour,
j'ai une table mysql constituée de 2 colonnes (id et name) et plusieurs ligne, j'ai créé une liste déroulante en php qui visualise tous les "name de ma table. à la base moi je veux récupérer le "id" du "name" sélectionné dans ma liste déroulante pour aller chercher d'autres informations dans d'autres tables concernant mon "name". Comment faire ? des indications? des propositions? j'en serai reconnaissant.
Merci d'avance.
Houss.

6 réponses

  1. Bonjour

    Je suppose que quand tu parles de liste déroulante, il s'agit d'un <SELECT>
    Dans ce cas, il te suffit de mettre l'id dans l'attribut VALUE de chaque <OPTION>.
    Quand tu recevras ton formulaire, c'est l'id que tu récupèreras
    1. Merci pour votre réponse rapide, moi pour tester si ça marche je veux créer un champ de texte qui m'affiche l'id du name sélectionné lorsque je clique sur submit.
      Je peux avoir un petit code pour cet affichage d'id?? SVP
      1. Fais voir ton code actuel pour que je puisse te proposer les modifications
    2. actuellement, moi lorsque je choisis mon "name je clique sur "go" pour qu'il m'affiche une autre page appelée fiche.html.
      Ce que je veut pour l'instant c'est seulement ma liste déroulante et un champ de teste à coté lorsque je choisis mon "name et je clique sur le bouton "Go", je veux avoir l'id de mon name affiché sur le champ de texte.
      Voilà mon code :
      <?php
      // information pour la connection à le DB
      $host = 'localhost';
      $user = 'root';
      $pass = '';
      $db = 'testlink';

      // connection à la DB
      $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
      mysql_select_db($db) or die ('Erreur :'.mysql_error());
      echo "connexion réussie";

      $sql = " SELECT name FROM nodes_hierarchy";
      $result = mysql_query($sql) or die("Requete pas comprise");

      echo "<form action='liste.php' method='POST'>
      <table><tr><td>le cas de test
      <select name='cas de test'>";

      while ($row=mysql_fetch_array($result))
      {
      echo"<option>$row[0]</option>";
      }
      echo"</select></td></tr>
      </table>
      <input type='submit' value='Go' name='go'/>
      </form>";

      if(isset($_POST['go']))
      {

      $url = $_POST['http://localhost/fiche.html'];
      header("location: http://localhost/fiche.html");
      }
      else
      {

      }

      mysql_close($connexion);
      ?>
      Merci beaucoup pour ton aide .
      1. $sql = " SELECT name FROM nodes_hierarchy";


        Si tu veux récupérer id, il faut l'ajouter dans la requete

        $sql = " SELECT id,name FROM nodes_hierarchy";


        while ($row=mysql_fetch_array($result))
        {
        echo"<option>$row[0]</option>"; 
        }


        et il te faut un value dans option pour récupérer la valeur du champ

        while ($row=mysql_fetch_array($result))
        {
        echo '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
        }
        1. merci !
          Ca veut dire que le programme doit être ça??

          <?php
          // information pour la connection à le DB
          $host = 'localhost';
          $user = 'root';
          $pass = '';
          $db = 'testlink';

          // connection à la DB
          $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
          mysql_select_db($db) or die ('Erreur :'.mysql_error());
          echo "connexion réussie";

          $sql = " SELECT name,id FROM nodes_hierarchy";
          $result = mysql_query($sql) or die("Requete pas comprise");

          echo "<form action='liste.php' method='POST'>
          <table><tr><td>le cas de test
          <select name='cas de test'>";

          while ($row=mysql_fetch_array($result))
          {
          echo"<option>$row[0]</option>";
          }
          echo"</select></td></tr>
          </table>
          <input type='submit' value='Go' name='go'/>
          </form>";
          while ($row=mysql_fetch_array($result))
          {
          echo"<option>$row[0]</option>";
          }
          while ($row=mysql_fetch_array($result))
          {
          echo '<option value="'.$row['id'].'">'.$row['name'].'</option>';
          }

          if(isset($_POST['go']))
          {

          $url = $_POST['http://localhost/fiche.html'];
          header("location: http://localhost/fiche.html");
          }
          else
          {

          }

          mysql_close($connexion);
          ?>

          mais je sais pas si ça marche ou non par ce que je ne vois pas encore un champ de texte dans lequel l'id s'affiche ??!!!
          1. <?php 
            // information pour la connection à le DB 
            $host = 'localhost'; 
            $user = 'root'; 
            $pass = ''; 
            $db = 'testlink'; 
            
            if(isset($_POST['go'])){ 
             // header("location: http://localhost/fiche.html"); 
             header("location: http://localhost/fiche.php?id=".$_POST['cas_de_test']); 
             die; 
            } 
            
            
            // connection à la DB 
            $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); 
            mysql_select_db($db) or die ('Erreur :'.mysql_error()); 
            echo "connexion réussie"; 
            
            
            $sql = " SELECT name,id FROM nodes_hierarchy"; 
            $result = mysql_query($sql) or die("Requete pas comprise"); 
            
            ?> 
            <form action="liste.php" method="POST"> 
             <table> 
              <tr> 
               <td>le cas de test 
                <select name="cas_de_test"> 
                <?php 
                while ($row=mysql_fetch_array($result)){ 
                 echo '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
                } 
                ?> 
                </select> 
               </td> 
              </tr> 
             </table> 
             <input type="submit" value="Go" name="go"/> 
            </form> 
            
            <?php 
             mysql_close($connexion); 
            ?>