Recuperer les valeurs d'une liste

mat75002 -  
Darshu Messages postés 303 Statut Membre -
Bonjour,
J'ai un soucis sur un formulaire, je n'arrive pas à récupérer les valeurs d'un menu déroulant. Je ne vois pas d'ou vient l'erreur...
Voici le code :
Page du formulaire :
  <table width="350" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="350"><font face='Verdana,Arial,Geneva' size='1'><b>Sélectionner un garage :</b><br></font>
        <form action="adm-annonces-list.php<?php echo $id; ?>" method="post" name="affichage_annonces">
          <select name="menu1">
            <option>...</option>
            <?php

            $query = "SELECT id,niveau,societe FROM users WHERE niveau=97 ORDER BY id ASC";
            $result = MYSQL_QUERY($query);
            while($ligne = mysql_fetch_array($result)){
              $id = $ligne['id'];
              $societe = $ligne['societe'];

              echo "<option value='".$id."'>".$societe."</option>";
            }
            ?>
          </select>
        </td>
      </tr>
      <tr>
        <td><font face='Verdana,Arial,Geneva' size='1'><b><br><br><br>Type d'affichage :</b><br><br>
          <label>
            <input type="radio" name="typeaffichage" value="1">
          </label>
Texte<br>
          <label>
            <input type="radio" name="typeaffichage" value="2">
          </label>
Galerie<br><br></font> </td>
        </tr>
        <tr>
          <td align="center"><input name="Envoyer" type="submit" value="Envoyer">
        </form>
      </td>
    </tr>
  </table>


Page de recup des données (Il ne sagit que d'une page provisoire pour testé la recuperation de données) :
  $post_id = $_POST['id'];
  if (!(isset($post_id)))
    {echo "erreur";}
  echo $post_id;

1 réponse

Darshu Messages postés 303 Statut Membre 64
 
Salut.

C'est ta ligne pour le form qui est fausse. Quand on veut passer les variables en paramètre dans l'url (ce que tu fais), il faut faire page.php?variable=valeur. Donc tu dois faire ça :
<form action="adm-annonces-list.php?id=<?= $id ?>" method="post" name="affichage_annonces">
C'était la première erreur.

La deuxième erreur, c'est que dans ta page cible, tu utilises $_POST[''], or, pour l'url il faut utiliser $_GET['']. Soit le code :
  $post_id = $_GET['id'];
  if (!(isset($post_id)))
    {echo "erreur";}
  echo $post_id;
Enfin, il y a une troisième erreur (mais de logique si je peux dire, formellement c'est correct) : tu testes l'existence de $post_id APRES l'avoir crée ... En fait, il faut tester l'existence de $_GET['id'] ! D'où le code :
if (isset($_GET['id']))
    $id = $_GET['id'];
else
{
    echo "Erreur, l'id n'est pas renseigné !";
    $id = 0;
}
Voila, bon courage pour la suite :)
0