Definir un <option> selected [Résolu]

Messages postés
321
Date d'inscription
samedi 12 février 2005
Dernière intervention
21 février 2013
- - Dernière réponse : cs_joebuz
Messages postés
321
Date d'inscription
samedi 12 février 2005
Dernière intervention
21 février 2013
- 25 sept. 2006 à 20:52
salut a tous

voila mon probleme je cherche a attribuer la valeur selected a un <option> en fonction du resultat d'une requete SQL

j'ai un <select> pour choisir les jours du mois de 01 a 31 et pour une administration j'ai besoin de pouvoir modifier a volonte

$jour  = la valeur du jour enregistré
je souhaiterais pour la modif affiché le <select> en mettant selected le jour $jour

mais je ne vois pas comment faire ca simplement !

joebuz
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
140
Date d'inscription
vendredi 28 février 2003
Dernière intervention
29 février 2008
3
Merci
Essaye ça :

$options = "";

for ($i=1; $i<32; $i++)
{
    if ($jour == $i)
       $selected = ' selected="selected"';
    else
       $selected = '';

    $options .= '<option value="'.$i.'"'.$selected.'>'.$i.'</option>';
}

echo '<select name="maList">'.$options.'</select>';

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_darkduck
Messages postés
321
Date d'inscription
samedi 12 février 2005
Dernière intervention
21 février 2013
0
Merci
Ok nikel, merci


 


j'aurais autre chose a demander


c'est la meme chose mais pour les mois :


<select name='mois'>
       <option value='01'>Janvier</option>
       <option value='02'>Fevrier</option>
       <option value='03'>Mars</option>
       <option value='04'>Avril</option>
       <option value='05'>Mai</option>
       <option value='06'>Juin</option>
       <option value='07'>Juillet</option>
       <option value='08'>Aout</option>
       <option value='09'>Septembre</option>
       <option value='10'>Octobre</option>
       <option value='11'>Novembre</option>
       <option value='12'>Decembre</option>
</select>

$mois (resultat de la requete) est en numerique, mais je prefere affiché le nom du mois
comment je pourrais faire avec ton script




joebuz
Commenter la réponse de cs_joebuz
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
31
0
Merci
Hello,

<?php$aMois array (1> 'janvier', 2 => 'février', 3 => 'mars'); // à compléter
$sSelectMois = '<select name="choixMois" onchange="document.getElementById(\'mainForm\').submit();"';
foreach ($aMois as $iMois => $sMois) { $sSelected (!empty ($_POST['choixMois']) && (int)$_POST['choixMois'] $iMois)?'selected="selected"':'';
 $sSelectMois .= '<option value="'.$iMois.'" '.$sSelected.'>'.$sMois.'</option>';
}
$sSelectMois .= '</select>';
?>
<form method="post" action="" id="mainForm">
 
  <?php echo $sSelectMois; ?>
 

</form>
Commenter la réponse de malalam
Messages postés
321
Date d'inscription
samedi 12 février 2005
Dernière intervention
21 février 2013
0
Merci
OK,  mais je l'ai modifié (je trouve plus simple comme ça)

$debut_m = le mois precedemment enregistré (resultat de la requete) 

<?php
echo "<select name='debut_m'>";   $dMois array (1> 'janvier', 2 => 'février', 3 => 'mars', 4 => 'avril', 5 => 'mai', 6 => 'juin', 7 => 'juillet', 8 => 'aout', 9 => 'septembre', 10 => 'octobre', 11 => 'novembre', 12 => 'decembre');
   foreach ($dMois as $diMois => $dsMois) {
    if($debut_m == $diMois){
    $dselected = ' selected="selected"';
    }
        else{
          $dselected = '';
    }
   echo '<option value="'.$diMois.'"'.$dselected.'>'.$dsMois.'</option>';
   }
  echo "</select>";
?>
joebuz
Commenter la réponse de cs_joebuz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.