Page 1 sur 1

récupérer une valeur dans un menu déroulant

Posté : 18 août 2005, 02:16
par ladybuug
Voilà j'ai un espace membres où on peut modifier sa fiche perso. Pour éviter que la personne ait tout à se retaper, je fais $pseudom, etc.

Sauf que dans les menu déroulants, la valeur se met entre chaque réponses

Code : Tout sélectionner

<select name='jourdenaissance' class='textfield' id='jourdenaissance'><option>\n"; $jour = 1; while ($jour <= 31) {echo "<option $check>$jour"; $jour++;} echo "</select>

mouais...

Posté : 18 août 2005, 02:25
par etycia
tu peux expliciter un peu parce que ce n'est pas super clair...
tu pré remplie un formulaire, c'est ca??
Dans tous les cas tu doit fermer ta balise <option> dans ta boucle je pense.

Posté : 18 août 2005, 03:04
par ladybuuug
oui oui la boucle est fermée, j'ai juste oublié le option.
En fait lorsque le membre souhaitera modifier ses informations, sur la page je souhaiterais que les valeurs qu'il a déjà inséré lors de son inscription soit affichée par exemple :

Code : Tout sélectionner

$prenomm=htmlentities($row['prenom']); Prénom * : <input name='prenom_ins' type='text' id='prenom_ins' value='$prenomm'><br>
ainsi il ne sera pas obligé de retaper à chaque fois son prénom

Sauf que je voudrais faire de même pour les menus déroulants et que lors que j'essaie de faire un option select ça bug :'(... on m'a expliqué qu'il fallait faire un if select bla bla mais le bug persiste

Posté : 18 août 2005, 08:32
par @rthur
Bonjour, voila ce que ça doit donner:
// on suppose que tu mets dans la variable $jour_select le jour à sélectionner, je mets 15 ici pour l'exemple
$jour_select="15";

print "<select name='jourdenaissance' class='textfield' id='jourdenaissance'>\n";

   $jour = 1;
   while ($jour <= 31) {
        if ($jour == $jour_select) {
            $check="selected";
        }else{
            $check="";
        }
        echo "<option $check>$jour</option>";
        $jour++;
    }
   echo "</select>";
J'ai laissé le while afin de conserver ta façon de coder, mais une boucle avec un for serait parfaitement approprié ici vu que le nombre d'itération dans la boucle est connu à l'avance.

Posté : 18 août 2005, 13:51
par ladybuuuug
bee ça ne marche pas, j'ai bien suivis comme tu m'asconseillé de faire mais cela ne change rien :'(

Posté : 19 août 2005, 02:43
par ladybuuug
Finalement j'ai réussis ! merci beaucoup. Par contre je n'arrive pas à y adapter avec les menus déroulants ayant du texte



Sans le code ajouté
<select name='moisdenaissance' class='textfield' id='moisdenaissance'><option>\n";
	
$mois = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
	$i = 0; 
while ($i  < count($mois)) 
{echo "<option $check>".$mois[$i]; $i++;}
	echo "</select></option>&nbsp;
 
Ce que j'ai tenté de faire
<select name='moisdenaissance' class='textfield' id='moisdenaissance'><option>\n";
$mois_select=$moism;	
$mois = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
	$i = 0; 
while ($i  < count($mois)) 
if ($mois == $mois_select) { 
            $check="selected"; 
        }else{ 
            $check=""; 
        } 
 echo "<option $check>".$mois[$i];"</option>"; 
       $i++; 
    } 
echo "</select>"; 
   

Posté : 22 août 2005, 14:09
par ladybuuug
Bien j'ai trouvé mon erreur, alors je donne la solution pour ceux qui auraient le même problème que moi.

à la place de mettre : $mois == $mois_select
il faut mettre : $mois[$i] == $mois_select

voilà c'est tout !