Recuperer les valeurs d'une liste

Fermé
mat75002 - 18 août 2006 à 16:42
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 - 18 août 2006 à 16:56
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 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 64
18 août 2006 à 16:56
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