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

Eléphant du PHP | 98 Messages

09 mai 2005, 10:58

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'];}
}
....
?>



Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

09 mai 2005, 11:12

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>"; 
....
?> 
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 98 Messages

09 mai 2005, 11:38

MERCI bcp sadeq !! ça marche nickel!