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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer une donnée SQL dans un menu déroulant.

par Ryle » 23 janv. 2007, 13:47

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>';

par damien200 » 23 janv. 2007, 13:44

Merci à tous les deux pour vos réponses.
Je vais me dépatouiller avec ça.
Merci !!!

par abricot » 23 janv. 2007, 13:12

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...

par Ryle » 23 janv. 2007, 13:04

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 :)

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

par damien200 » 23 janv. 2007, 13:01

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>