Bd vers 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 : Bd vers Menu déroulant

par Morkem » 29 juin 2007, 10:30

Merci beaucoups pour le coup de pouce c'est tout à fait ca ^^

par Ryle » 29 juin 2007, 10:09

Pour sélectionner une valeur dans une option, il faut effectivement y spécifier l'attribut "selected" (on peut aussi le faire en javascript, mais c'est pas forcément plus simple si on veut faire ça proprement et compatiblement :))

Donc pas le choix, obligé de te palucher le test à chaque élément de ton input...

... sauf que ...

... lorsque l'on doit faire une même action plusieurs fois de suite, les développeurs paresseux que nous sommes trouve généralement plus judicieux d'utiliser des boucles ;)

Ainsi, si tu définies un tableau associatif contenant les valeurs et libellés de ta combo, tu peux facilement le parcourir et afficher chaque valeur dans une option :
$categorie = array (
  'moustique' => 'Moustique',
  'poussin' => 'Poussin',
  ...
);

foreach ($categorie as $value => $text) { // on parcour le tableau
  if ($value == $donnees['valeur']) { // si l'on trouve la valeur à sélectionner
    echo '<option value="'.$value.'" selected="selected">'.$text.'</option>'; 
  } else { // sinon
    echo '<option value="'.$value.'">'.$text.'</option>'; 
  }
}
HTH :)

Bd vers Menu déroulant

par Morkem » 29 juin 2007, 08:51

Bonjour,

Ma question d'aujourd'hui est de savoir comment on fait pour recuperer les données d'une bd dans un menu déroulant.

1) J'enregistre grace a un formulaire (ok)
2) Je peux consulter et eventuellement modifier (ok)
3) Si je modifie je vais sur une page identique au formulaire mais avec les champs déjà remplis.

Sauf que pour les zone de texte ca fonctionne très bien je sais comment on fait. Je voudrais le faire pour des menu déroulants ou des cases a cochers ou des bouton radio.

Ex:
Mon menu déroulant comporte 3 option : vert (checked), bleu, rouge.
Lorsque j'enregistre je selectionne le bleu.
Quand je veux modifier, il revient sur le premier champ dispo soit le vert. Je veux simplement que son premier choix soit à nouveau le bleu pour que je sache ce que j'avais.

J'ai vu ceci sur le web :
if ($value == $donnees['valeur']){
    echo '<option value="'.$value.'" selected="selected"></option>';
} else {
    echo '<option value="'.$value.'"></option>';
}
mais ca m'obligerait à le faire pour toute les lignes et mon formulaire est assez gros (petit exemple) :
<?php
$membre = $_GET['id'];
$retour = mysql_query('SELECT * FROM escrime_membres WHERE id='.$membre.'');
while ($donnees = mysql_fetch_array($retour))
{
?>

<form method="post" action="modifok.php">

<fieldset><legend>Caractéristiques</legend>
<label for="categorie">Catégorie :</label> <select name="categorie" id="categorie" />
                                                                                                <option value="moustique">Moustique</option>
                                                                                                <option value="poussin">Poussin</option>
                                                                                                <option value="pupille">Pupille</option>
                                                                                                <option value="benjamin">Benjamin</option>
                                                                                                <option value="minime">Minime</option>
                                                                                                <option value="cadet">Cadet</option>
                                                                                                <option value="junior">Junior</option>
                                                                                                <option value="senior">Sénior</option>
                                                                                                <option value="veteran">Vétéran</option>
                                                                                   </select>
Donc pour résumer, dans l'enregistrement je sélectionne la catégorie senior.
Lorsque je modifie ma fiche, actuellement le déroulant revient sur la première proposition soit moustique et j'aimerais qu'il revienne automatiquement sur mon choix.

Merci