Liste déroulante, valeur par défaut

Fermé
Ga3z Messages postés 67 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 9 septembre 2008 - 6 sept. 2008 à 14:36
Ga3z Messages postés 67 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 9 septembre 2008 - 9 sept. 2008 à 11:06
Bonjour,

je suis bénévole pour une asso et je m'occupe de son site
j'ai un formulaire avec une liste déroulante alimenté par le champ "poste" de la table "fonctbureau" , qui enregistre les données choisies dans le champ "fonction" de la table "membres":
<?php
echo '<p>Fonction:</p>';
echo '  <select name="fonction">';
$resfonction=mysql_query("SELECT fonction from fonctbureau") ;
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option>'.$ligne["fonction"].'</option>';
}
echo '</select>';
?>

ça marche bien à part que je ne sais pas comment faire pour que par défaut le select soit vide

Ensuite, j'ai un autre formulaire qui récupère les données de la table "membres" et là, problème car je voudrais que ma liste déroulante soit toujours alimenté par la table "bureau", mais affiche par défaut la valeur trouvée dans la table membres c'est à dire: $donnees['fonction']

j'ai fait ce code:
<?php
$fonction = $donnees['fonction'];
 <p>Fonction
	   <select name="fonction" value="<?php echo $fonction; ?>">
<?php

$resfonction=mysql_query("SELECT poste FROM fonctbureau") ;
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option>'.$ligne['poste'].'</option>';
}
?> 
</select>

mais ça marche pas

vous pourriez m'aider ?

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
6 sept. 2008 à 16:22
Salut,

1-comment faire pour que par défaut le select soit vide
<?php
echo '<p>Fonction:</p>';
echo '  <select name="fonction">';
$resfonction=mysql_query("SELECT fonction FROM fonctbureau") ;
echo '<option value="" selected></option>'; //ligne d'option vide 
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option value="'.$ligne["fonction"].'">'.$ligne["fonction"].'</option>';
}
echo '</select>';
?>


il faut tjs mettre le value= dans les lignes d'option

2-
<?php
$fonction = $donnees['fonction'];//es tu sur de ça ce ne serait pas plutot la valeur choisie dans le formulaire 1 ??
//il te manquait la fermeture de php ci dessous
?>
<p>Fonction:
<select name="fonction" > <!-- pas de value= dans la balise select -->
<?php

$resfonction=mysql_query("SELECT poste FROM fonctbureau WHERE fonction='".$fonction."'") ;
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option value="'.$ligne['poste'].'">'.$ligne['poste'].'</option>';
}
?>
</select>
0
Ga3z Messages postés 67 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 9 septembre 2008 6
6 sept. 2008 à 17:39
ok pour le 1, merci

mais pour le 2

<p>Fonction:
<select name="fonction" > 
<?php
$resfonction=mysql_query("SELECT poste FROM fonctbureau WHERE poste='".$fonction."'") ;
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option value="'.$ligne['poste'].'">'.$ligne['poste'].'</option>';
} 
?>

ça ne m'affiche que la valeur récupérée dans la base membres, c'est à dire $ligne['poste'] , et pas les autres possibilités de la table fonctbureau
(je vais me servir de ce formulaire pour pouvoir éventuellement modifier la fonction d'un membre et donc j'ai besoin de la liste des postes possibles, en plus de sa fonction actuelle )
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
6 sept. 2008 à 17:47
ça ne m'affiche que la valeur récupérée dans la base membres, c'est à dire $ligne['poste'] , et pas les autres possibilités de la table fonctbureau

je ne comprend pas ce que tu veux dire ?

donnes un exemple
0
Ga3z Messages postés 67 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 9 septembre 2008 6
6 sept. 2008 à 17:54
si le gars est secrétaire, ça m'affiche secrétaire => ok mais si je veux dérouler la liste, y a rien d'autre

alors j'ai essayé d'adapter le code du cas n°1 (valeur nulle par défaut):
<?php
$resfonction=mysql_query("SELECT poste FROM fonctbureau ") ;
echo '<option value="'.$fonction.'" selected></option>'; //ligne d'option fonction actuelle
while ($ligne=mysql_fetch_array($resfonction))
{
echo '<option value="'.$ligne['poste'].'">'.$ligne['poste'].'</option>';
} 
?>

là c'est encore autre chose: il affiche bien la liste déroulante, mais la valeur par défaut semble être nulle (y a rien dans le select), par contre si j'actualise la page, la fonction que le gars occupe s'affiche impecc et j'ai bien ma liste qui se déroule en plus. C'est un peu boiteux comme solution d'avoir à actualiser la page, non ?
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
6 sept. 2008 à 17:57
Ha si j'ai bien compris dans une même liste déroulante, tu veux afficher au début la fonction et dans les options suivantes les postes ?
0
Ga3z Messages postés 67 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 9 septembre 2008 6
9 sept. 2008 à 11:06
C'est ça :
Dans la table fonctbureau, dans le champ "poste" il y a plusieurs valeurs: Président, Tecrétaire, Trésorier, etc... avec une id respectivement 1, 2 et 3 etc...
Dans la table membres, il y a le champs "nom" et le champ "fonction", ce dernier pouvant être vide si le membre n'a aucune fonction.
Mon formulaire doit servir à modifier une fiche membre en lui attribuant uen fonction ou en modifiant la fonction actuelle.
la liste déroulante, doit donc avoir en option les postes possibles venant de la table fonctbureau mais afficher par défaut la valeur du champ "fonction" de la table membres
0