PHP - Conserver etat d'une liste déroulante

Vesper Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
 Vesper- -
Bonjour,
Alors léger blocage pour lequel j'espère avoir une réponse des esprits brillants et culturés qui se trouvent parmi vous (tentons l'approche flatteuse..).

J'ai une liste déroulante alimentée par une base de données qui entrent comme étant un critère de recherche et j'aurais voulu savoir comment faire pour pouvoir conserver la ligne selectionnée après avoir appuyé sur le maudit submit !
Mon code :

$reponse = mysql_query("SELECT distinct push FROM push");
echo "<select name=\"push\" size=\"1\" maxlength=\"30\">";
print "<OPTION value=\"".$_GET['push']."\" selected>".$_GET['push']."</option>";
while ($donnees = mysql_fetch_array($reponse))
{
?>
<option
value="<?php $donnees['push']; print $donnees['push'];?>"><?php echo $donnees['push'];?>
</option>
<?php
}
?>
</select>

Le souci c'est que ca m'ajoute une ligne qui existe déjà donc j'me retrouve avec deux lignes contenant la même information..

Merci de votre aide,

A bientot.
A voir également:

2 réponses

Vesper-
 
C'est bon j'ai trouvé la réponse pour ceux que ca pourrait aider :

<option
value="<?php echo $donnees['push'];?>" <?php if (!empty($_GET['push'])) {if ($_GET['push']==$donnees['push']) print("selected");} ?>><?php echo $donnees['push'];?>
</option>
1
Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention   2 331
 
J'avais eu besoin de faire un truc du genre également. Je viens d'aller voir comment j'ai fait, en fait j'ai carrément lancé un str_replace pour afficher le "selected" de la liste.
Voilà le code :
Nombre de tests : 
<select name="nb" onchange="this.form.submit()">
<?php
//Conservation du nombre de tests
$contenu_liste="<option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option></select>";
$contenu_liste=str_replace("<option>$nb</option>","<option selected>$nb</option>",$contenu_liste);
echo $contenu_liste;
?>
</select>
C'est peut être pas super propre, mais ça fonctionne. Sinon tu as aussi les cookies ou les sessions.
0