Php impossible récupérer valeur select

Résolu
Bonjour,
sur une page php , j'ai un formulaire sur lequel j'ai mis une liste déroulante "fonction" alimentée par une table "fonctbureau" avec le champ "poste". Jusque là tout fonctionne
Mon problème est que ce formulaire est destiné à alimenter une autre table "membres" et j'y arrive pas (sauf pour les input text ordinaire).
voici un extrait de mon code pour le formulaire avec le select

<form action="envoi_m.php" method="post" name="forminscr" id="forminscr" >
<input type="text" name="nom" size="40" maxlength="50"  />

<?php
require_once('../../Connections/mabase.php');

mysql_select_db("base"); // Sélection de la base
echo '<select name="fonction" >';
$resfonction=mysql_query("SELECT poste FROM fonctbureau") ;
echo '<option value="" selected></option>'; //ligne d'option vide
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option value="'.$ligne["fonction"].'">'.$ligne["poste"].'</option>';

}
echo '</select>';
?>
<input type="submit" name="bouton" value="Envoyer" />
</form>

et celui de la page qui permet l'enregistrement des données (je signale que pour les input text ça fonctionne bien, par contre):

<?php
//je récupère les valeurs du formulaire
$nom = $_POST['nom'];// là ça fonctionne impec
$fonction = $_POST['fonction'];//là ça me récupère rien du tout
// je les envoie dans la table membres
require_once('../../Connections/mabase.php');
mysql_select_db("base");

mysql_query("INSERT INTO membres VALUES('', '" . $nom . "', '" . $fonction . "'"')");

mysql_close();
?>


où est-ce que je me trompe ?
Configuration: Windows XP
Firefox 3.0.13

5 réponses

  1. SLT
    dsl de ne l'avoir pas vu de ci tot
    au fait sur cette ligne
    echo '<option value="'.$ligne["fonction"].'">'.$ligne["poste"].'</option>';
    

    d'où te sort le champ fonction dans $ligne["fonction"], car si j'en tiens au resultat de la requete
    $resfonction=mysql_query("SELECT poste FROM fonctbureau") ;
    

    tu fais une projection sur une seule colonne à savoir poste, il n'y a pas de champs fonction
    je ne sais pas mais d'ares moi ta requete devrais etre un truc du genre
    $resfonction=mysql_query("SELECT poste, fonction FROM fonctbureau") ;
    

    à condition bien sure que fonction existe dans la table fonctionbureau
    essaie de reverifier voir ta requete

    cdlt.
    ;-)
    1. echo '<option value="'.$ligne["fonction"].'">'.$ligne["poste"].'</option>';
      


      effectivement !!!
      si je mets
      echo '<option>'.$ligne["poste"].'</option>';

      tout s'arrange !
      Merci
  2. fait afficher code source pour voir si tu as bien value="qq chose" dans le code genéré pour ta liste déroulante
    1. ok
      toutefois essaye de l'enlever et fait un
      echo $_POST['fonction'];
      pour voir si elle est arrivée
      1. non william

        car il selectionne celle là par deffaut et mm si tu choisit une autre il reselectionne encore celle là.

        selected sert seulement à l'affichage de la liste a mettre l'élément apparent, pas au moment de l'envoi du formulaire
        1. Slt
          retire le selected da l'option vide echo '<option value="" selected></option>'; //ligne d'option vide
          car il selectionne celle là par deffaut et mm si tu choisit une autre il reselectionne encore celle là.
          juste met ça
          echo '<option value=""></option>'; //ligne d'option vide
          et ça va marcher

          il risque aussi d'avoir un petit probleme pour cette requete
          mysql_query("INSERT INTO membres VALUES('', '" . $nom . "', '" . $fonction . "'"')");
          

          moi je miserais pour celle ci
          mysql_query("INSERT INTO membres VALUES('', '" . $nom . "', '" . $fonction . "')");
          
          


          cdlt
          ;-)