8796 sujets

Développement web côté serveur, CMS

je viens de faire une liste deroulante qui m'affiche le id à partir de la base de donnée, mon soucis c'est qu"elle s'initialise à chaque fois que je cliqque sur valider. je voulais savoir qu'est ce qu'il faut faire pour que meme si je clque sur valider, elle garde toujours le meme article selectionné.
voici mon script:
<?php
// lancement de la requete pour afficher les noms dans la liste
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_Liste1 = "SELECT distinct type_article  FROM shop_article";
$Liste1 = mysql_query($query_Liste1, $connexion) or die(mysql_error());
$row_Liste1 = mysql_fetch_assoc($Liste1);


// si il y a une erreur
		?>
         <?php
// on affiche le resultat dans une liste de selection
echo '<form id="form2" name="form2" method="post" action="">
		<table width="20" border="0" align="left">
			<tr>
				<td width="110">
					
					<select name="select">';
// on créer une boucle pour extraire toutes les données
while ($donnee = mysql_fetch_array($Liste1)) {
echo '<option>'.$donnee['type_article'].'</option>';
}?>
</select>
     
 <td nowrap="nowrap" align="center">   <input type="submit" name="Validation" value="Valider"/></td>
     </form> 

merci d'avance pour votre aide!
Salut,

Bon pour commencer, c'est curieux d'afficher un id au lieu d'un libellé, mais soit.

Dans le tag OPTION il faut ajouter l'attribut VALUE

<option value="tes_id">XXXXX</option>


Lorsque tu recharges la page tu vérifies que tu as bien le post


if isset($_POST['select'])
  $varSelect = $_POST['select'];
else
  $varSelect = 0; // car normalement il n'y pas un id avec la valeur 0


Ensuite il faut rajouter un test lorsque que tu construis les différentes OPTIONs de ta liste, pour ajouter l'attribut SELECTED au tag OPTION


// on créer une boucle pour extraire toutes les données

while ($donnee = mysql_fetch_array($Liste1)) {

if ($donnee['type_article'] == $varSelect)
  $strSelected = 'selected="selected"';
else
  $strSelected = '';

echo '<option value="'.$donnee['type_article'].'" '.$strSelected.'>'.$donnee['type_article'].'</option>';

}?>



Cela devrait le faire, mais au cas où n'hésite pas à poser des questions