Problème select html value par défault
max1395
Messages postés
95
Statut
Membre
-
ipouy -
ipouy -
Bonjour,
Voila dans un formulaire je voudrais que, dans la case select , l'option par value soit celle qui ya dans la base de donné , je m'explique par le code
Je voudrais que sa affiche ce qu'il y a dans la base de donné or ca affiche tous le temps 1 , comment faire Merci :)
Voila dans un formulaire je voudrais que, dans la case select , l'option par value soit celle qui ya dans la base de donné , je m'explique par le code
<SELECT name="chiffre" value="<?php echo $data['CHIFFRE'] ; ?>">
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
</SELECT>
Je voudrais que sa affiche ce qu'il y a dans la base de donné or ca affiche tous le temps 1 , comment faire Merci :)
8 réponses
-
Oui pas bête l'astuce mais ca m'affiche toujours le 1er de la liste et non celui de la bdd
-
pas normal... vous avez quoi dans $data['chiffre'] ?
ça ne doit plus être un chiffre fatalement, car votre value est une chaîne de caractères, si vous voulez des chiffres comme value il faudrait faire ça à la place :
$tab = array(1=>'toto',2=>'titi',3=>'tutu');
foreach($tab as $key=>$value) {
if ($data['chiffre']==$key) {
echo '<option value="'.$key.'" selected="true">'.$value.'</option>';
} else {
echo '<option value="'.$key.'">'.$value.'</option>';
}
-
-
Bonjour,
pour sélectionner une valeur dans un select il faut faire ceci dans une des balises option
<option value="xxx" selected="true">....</option>
Donc dans votre code PHP ça pourrait être
<SELECT name="chiffre">
<?php
for($i=1; $i<5;$++) {
if ($data['chiffre']==$i) {
echo '<option value="'.$i.'" selected="true">'.$i.'</option>';
} else {
echo '<option value="'.$i.'">'.$i.'</option>';
}
}
?>
</SELECT>
-
Oui je comprends mais il existerais pas un code plus simple a mettre en place ?
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
ok c'est bon j'ai compris le code mais comment je fais si je veux veux mettre des noms a la place des chiffres ?
-
-
Comme ceci par exemple :
$tab = array('toto','titi','tutu');
for($i=1; $i<count($tab);$++) {
if ($data['chiffre']==$tab[$i]) {
echo '<option value="'.$tab[$i].'" selected="true">'.$tab[$i].'</option>';
} else {
echo '<option value="'.$tab[$i].'">'.$tab[$i].'</option>';
} -
<SELECT NAME="name">
<?php $tab = array('toto','titi','tutu');
for($i=0; $i<count($tab);$i++) {
if ($data['chiffre']==$tab[$i]) {
echo '<option value="'.$tab[$i].'" selected="true">'.$tab[$i].'</option>';
} else {
echo '<option value="'.$tab[$i].'">'.$tab[$i].'</option>';
}
}
?>
</SELECT>
Voici le code précédent modifié de façon à ce qu'il marche-
Moi je préfères ça :
//..dans la boucle bien sûr
echo '<option value="'.$tab[$i].'" ';
if ($data['chiffre']==$tab[$i]){ echo 'selected="selected" ';} /*(pas de else) moins de structure conditionnelle exécution plus rapide et plus facile à modifier et plus clair à lire*/
echo '>'.$tab[$i].</option>';
// fermer la boucle for
-