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
    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
    ;-)
    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. ok
        toutefois essaye de l'enlever et fait un
        echo $_POST['fonction'];
        pour voir si elle est arrivée
        1. fait afficher code source pour voir si tu as bien value="qq chose" dans le code genéré pour ta liste déroulante
          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