Page 1 sur 1
Initiliser un menu déroulant sur une valeur
Posté : 06 mai 2005, 18:58
par Porky
Bonjour, j'essaye de remplir le menu déroulant en initialisant celle ci sur la variable "$test"
mais le menu déroulant s'initialise toujours sur la valeur "4".
(J'aimerais garder l'integration du HTML dans le PHP.)
Code (exemple):
<? $test=3;
echo'<form name="form1" method="post" action="">
<p>
<select name="select">
<option>1</option>
<option>2</option>';
if ($test=3){
echo'<option selected>3</option>';}
else {
echo'<option>3</option>';}
if ($test=4)
{echo'<option selected>4</option>';}
else {
echo'<option>4</option>';}
echo'
<option>5</option>
<option>6</option>
</select>';
?>
Merci d'avance
Posté : 06 mai 2005, 19:04
par Gentoo Warrior
essaie avec un double == comme ceci : if ($test==4)
Posté : 06 mai 2005, 19:10
par Cyrano
Pourquoi faire générer du HTML inutilement à PHP ? Ça alourdit la charge serveur et ça rend le code nettement moins lisible:
<?php
$test=3;
?>
<form name="form1" method="post" action="">
<p>
<select name="select">
<option value="1"<?php if($test == 1){echo(" selected");} ?>>1</option>
<option value="2"<?php if($test == 2){echo(" selected");} ?>>2</option>
<option value="3"<?php if($test == 3){echo(" selected");} ?>>3</option>
<option value="4"<?php if($test == 4){echo(" selected");} ?>>4</option>
<option value="5"<?php if($test == 5){echo(" selected");} ?>>5</option>
<option value="6"<?php if($test == 6){echo(" selected");} ?>>6</option>
</select>
Posté : 06 mai 2005, 19:27
par Porky
Merci pour votre réponse rapide!
Ca marche avec "==". c'est alot....
quand a l'integration du HTML dans PHP c'est que je croyais que le fait de fermer les balises PHP me ferait perdre certaines valeurs, car ce bout de code est contenu en fait dans un tableau "while($data = mysql_fetch_array($req))".
C'est donc faux !!????....heu.... pas sur.
En tous cas encore merci à vous.
ps: je trouve pas le RESOLU à mettre sur le post!!!
Posté : 06 mai 2005, 19:32
par Cyrano
En fermant la balise <?php, on ne pert pas les valeurs de variables: on les perdrait en changeant de page si elle ne sont pas globales..
Posté : 06 mai 2005, 19:36
par Porky
OK..... mais dans le cas de while($data = mysql_fetch_array($req)) c'est possible aussi ?
Posté : 06 mai 2005, 19:40
par Cyrano
bien sur, tu ouvres ton while et tu peux intercaler du HTML en fermant temporairement les balises <?php, voici un exemple d'un code sur lequel je suis, avec une boucle for, mais le principe est le même :
<select name="type_bien" id="type_bien" title="Type de bien annoncé">
<?php
for ($i=0; $i < count($types); $i++)
{
?>
<option value="<?php echo($type[$i][0]); ?>"<?php if($type_bien == $types[$i][0]){echo("selected=\"selected\"");} ?>><?php echo $types[$i][1]?></option>
<?php
}
?>
</select>
Je ne perds rien du tout en route.
Posté : 06 mai 2005, 19:51
par Porky
merci à toi Cyrano pour ton explication.
Je vais de ce pas me retaper mon code de manière beaucoup plus lisible et du coup plus light.
:P