Rechercher : dans
Par :

Liste déroulante, valeur par défaut

Dernière réponse le 9 sep 2008 à 11:06:26 Ga3z, le 6 sep 2008 à 14:36:45 
 Signaler ce message aux modérateurs

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 ?
Configuration: Windows XP
Firefox 3.0.1

Meilleures réponses pour « liste déroulante, valeur par défaut » dans :
Listes déroulantes simples avec Excel VoirDans votre tableau, vous souhaitez insérer un texte ou une valeur choisi dans une liste (déroulante). vous créez votre liste, ligne aprés ligne, sur votre feuille en cours ou sur une autre feuille du classeur en cours. vous la nommez : INSERTION...

1

Alain_42, le 6 sep 2008 à 16:22:52

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>

Répondre à Alain_42

2

Ga3z, le 6 sep 2008 à 17:39:59

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 )

Répondre à Ga3z

3

Alain_42, le 6 sep 2008 à 17:47:04

ç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

Répondre à Alain_42

4

Ga3z, le 6 sep 2008 à 17:54:28

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 ?

Répondre à Ga3z

5

Alain_42, le 6 sep 2008 à 17:57:44

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 ?

Répondre à Alain_42

6

 Ga3z, le 9 sep 2008 à 11:06:26

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

Répondre à Ga3z
Collection CommentÇaMarche.net