Page 1 sur 1

Récupérer une donnée SQL dans un menu déroulant.

Posté : 23 janv. 2007, 13:01
par damien200
Bonjour à tous,
Je voudrais que le menu tout seul sur la bonne <option>
Si type=3 alors le menu se mettra tout seul sur "Bar Concert"

Mais avec ce code ça marche pas... ça reste toujours sur "salle", le premier quoi....
Merci d'avance
<select name='ntype' value='$contenu[type]'>
<option value='1'>Salle</option>
<option value='2'>Asso/festival</option>
<option value='3'>Bar Concert</option>
<option value='4'>Mairie/autres..</option>
</select>

Posté : 23 janv. 2007, 13:04
par Ryle
Modération :
damien200, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.


Pour sélectionner une option par défaut, il te faut ajouter l'attribut "selected" dans la balise option qui va bien :)

Posté : 23 janv. 2007, 13:12
par abricot
salut je debute mais j'ai une facon pas tres optimisée de le faire, je pense que les programmeur ici seront mieux te renseigner mais je vais te donner mon idée tout de même :
if($contenu['type'] == 1){
      echo ("<select name='ntype' value='$contenu[type]'> 
     <option SELECTED value='1'>Salle</option> 
     <option value='2'>Asso/festival</option> 
     <option value='3'>Bar Concert</option> 
     <option value='4'>Mairie/autres..</option> 
     </select>");
}
elseif($contenu['type'] == 2){
      echo ("<select name='ntype' value='$contenu[type]'> 
     <option value='1'>Salle</option> 
     <option SELECTED value='2'>Asso/festival</option> 
     <option value='3'>Bar Concert</option> 
     <option value='4'>Mairie/autres..</option> 
     </select>");
}
// etc...

Posté : 23 janv. 2007, 13:44
par damien200
Merci à tous les deux pour vos réponses.
Je vais me dépatouiller avec ça.
Merci !!!

Posté : 23 janv. 2007, 13:47
par Ryle
Ce serait effectivement plus optimisé de tester directement dans chaque option, plutôt que de multiplier le select (surtout si une valeur ou un libellé change, ca évite d'avoir à le modifier n fois).

L'opérateur ternaire (cf. FAQ) est très pratique pour cela :
echo '<select name="ntype" value="'.$contenu[type].'">';
echo '<option '.(($contenu['type'] == 1) ? 'SELECTED' : '').' value="1">Salle</option>';
echo '<option '.(($contenu['type'] == 2) ? 'SELECTED' : '').' value="2">Asso/festival</option>';  
echo '<option '.(($contenu['type'] == 3) ? 'SELECTED' : '').' value="3">Bar Concert</option>';  
echo '<option '.(($contenu['type'] == 4) ? 'SELECTED' : '').' value="4">Mairie/autres..</option>';  
echo '</select>';