Aller au contenu

remplir dynamiquement une liste déroulante


Sujets conseillés

Posté

Bonjour,

J'ai créé un formulaire que je souhaite remplir dynamiquement avec des infos présentes en BDD.

Pour cela, je fais une requete qui va chercher l'info dans la BDD et affiche la variable dans le "value".

Mon code :

//requête récupérant la raison sociale de l'entreprise
$raisonsoc = mysql_query("SELECT raison_sociale FROM annuaire WHERE id='$ident'");

et dans le formulaire :

 <?php 
while($resultat = mysql_fetch_row($raisonsoc))
{

echo '<input style="font-family:calibri; font-size:14px;" type="text" name="Zraison_soc" value="' . $resultat[0] .'" />';

}

?>

Pour les champs texte, je n'ai pas de soucis. Cependant je bloque sur les listes déroulantes.

J'ai un code particulier pour les variables de session :

<? $liste_dep = array("", "Ariège (09)", "Aveyron (12)", "Haute-Garonne (31)", "Gers (32)", "Lot (46)", "Hautes-Pyrénées (65)", "Tarn (81)", "Tarn-et-Garonne (82)");
echo' <select style="color: #000; font-size:14px; font-family: calibri;" name="Zdepartement" id="dep">';

foreach ($liste_dep as $value=>$label) {
if ($label == $_SESSION['form']['Zdepartement']) {
$selected = ' selected="selected"';
}
else {
$selected = '';
}

echo '<option' . $selected . ' value="' . $label . '">' . $label . '</option>';
}
echo '</select>';
?>

Je ne sais pas comment il faut placer le code pour que le département sélectionné soit celui présent dans ma BDD.

Merci d'avance

Posté

To méthode est bonne, peut-être formulée de façon un peu compliquée,

mais je pense que ton problème est au niveau de ta variable de Session (c'est un tableau à 2 dimensions ?)

Pour faire plus simple, je ferais (en supposant que ta variable session n'a qu'une dimension) :

  foreach ($liste_dep as $label)
echo '<option' . ($label == $_SESSION['Zdepartement']?' selected="selected"':'') . ' value="' . $label . '">' . $label . '</option>';

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...