Php impossible récupérer valeur select

Résolu/Fermé
thenull Messages postés 12 Date d'inscription vendredi 4 septembre 2009 Statut Membre Dernière intervention 10 juillet 2013 - 4 sept. 2009 à 17:10
thenull Messages postés 12 Date d'inscription vendredi 4 septembre 2009 Statut Membre Dernière intervention 10 juillet 2013 - 5 sept. 2009 à 10:13
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 ?

5 réponses

william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
5 sept. 2009 à 00:21
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
thenull Messages postés 12 Date d'inscription vendredi 4 septembre 2009 Statut Membre Dernière intervention 10 juillet 2013
5 sept. 2009 à 10:13
echo '<option value="'.$ligne["fonction"].'">'.$ligne["poste"].'</option>';


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

tout s'arrange !
Merci
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
4 sept. 2009 à 17:17
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
;-)
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 sept. 2009 à 18:01
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
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
4 sept. 2009 à 18:23
ok
toutefois essaye de l'enlever et fait un
echo $_POST['fonction'];
pour voir si elle est arrivée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 sept. 2009 à 19:40
fait afficher code source pour voir si tu as bien value="qq chose" dans le code genéré pour ta liste déroulante
0