Page 1 sur 1

garder le choix d'une liste déroulante après contrôle

Posté : 09 mai 2005, 10:58
par lamk
Bonjour all,
voilà j'ai un petit problème pour garder le choix d'un menu déroulant après un controle de saisi du formulaire.
Pour le champ input text c'est bon, mais pour la liste je ne sais pas comment m'y prendre..
si qqun peut m'aider, merci d'avance !

voilà une partie de mon code :
	<div class='form-ligne'>
	<div class='label'>Nom :<font color='red'> *</font></div>
	<div class='champ'><input name='nom' type='text' size='150' maxlength='150' title='Saisir le nom du produit' value='<? if (isset($_POST['nom'])){echo $_POST['nom'];}?>'></div>
</div>

<?	
...
$sql2 = "SELECT t_nom FROM type ORDER BY t_nom ASC";
	$listt=mysql_query("$sql2") or die("Invalid query : ".mysql_error());
	echo "<div class='form-ligne'>";
	echo "<div class='label'>Type :<font color='red'> *</font></div>";
	echo "<div class='champ'><select name='listt'>";
	echo "<option value=''>--Sélectionner un type--</option>";
	while ($r2 = mysql_fetch_array($listt))
	{
		echo "<option value='".$r2[0]."'>".$r2[0]."</option>";
	}
	echo "</select></div></div>";
?>

	<br><div class='form-ligne'>
		<div class='boutons'>
		<input type='submit' name='ajout' value='Ajouter'></div>
	</div>

<?
	if(isset($_POST['ajout']))
	{
		if($_POST['user']==NULL){echo "<font color='red'>Veuillez saisir vos initiales.</font><br>";}
		if($_POST['listt']==NULL){echo "<font color='red'>Veuillez saisir un type de produit.</font><br>";echo $_POST['listt'];}
}
....
?>



Posté : 09 mai 2005, 11:12
par sadeq
Dans la boucle de construction du SELECT (liste de choix) tu dois fixer un ordre SELECTED sur l'option qui a été déjà sélectionnée avant le dernier SUBMIT en écrivant :
....
echo "<div class='champ'><select name='listt'>"; 
    echo "<option value=''>--Sélectionner un type--</option>"; 
    while ($r2 = mysql_fetch_array($listt)) 
    { 
       $selectionnée = ($r2[0] == $_POST["listt"]) ? " SELECTED " : "";
      echo "<option value='".$r2[0]."'  $selectionnée >".$r2[0]."</option>"; 
    } 
    echo "</select></div></div>"; 
....
?> 

Posté : 09 mai 2005, 11:38
par lamk
MERCI bcp sadeq !! ça marche nickel!