[PHP] conserver séléction d'un menu déroulant

rasteda Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
rasteda Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je souhaite conserver la séléction d'un menu déroulant après soumission.
Dans un premier temps je récupère mes variables dans ma base MYSQL puis je les affiche dans le menu déroulant. Tout fonctionne si ce n'est que le menu déroulant se réinitialise à la soumission.
Je souhaiterais qu'il conserve en mémoire la séléction.
j'ai l'impression que mon while / for n'est pas joli joli !! :-)

Voici mon code:

<form action="select_prod.php" method="post" id="choixrub">
<?
$query = "SELECT DISTINCT intitule FROM tbl_rub ORDER BY intitule ASC";
$result = mysql_query($query) or die("ERROR");
?>

<fieldset>
<p>
<label>Séléctionnez une rubrique</label>
<select name="rubrique" class="small-input" onchange='document.forms["choixrub"].submit();'>
<?
echo "<option disabled='disabled' SELECTED>Rubriques ----------</option>";
while ($row = mysql_fetch_array($result))
{
for($i = 0; $i < 10; $i++)
{
$selected = (isset($_POST['rubrique']) and $_POST['rubrique'] == $i)?'selected="selected"':'';
echo '<option value="', $row[0], '" '.$selected.'>', $row[0], '</option>';
}
}?>
</select>
</p>
</form>
A voir également:

7 réponses

BadGuitarist Messages postés 367 Date d'inscription   Statut Membre Dernière intervention   27
 
Bonjour rasteda,

Petite idée : tu peux par exemple mémoriser le choix de l'utilisateur dans un cookie et après sélection et donc rafraichissement de la page, lire le cookie pour mettre en évidence le choix de l'utilisateur.

Est-ce que cela te conviendrait ?

Bonne année 2010.
0
rasteda Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,
Très bonne année à toi également ;-)

ça pourrait être une bonne solution effectivement.
Mais cela n'est pas un peu trop compliqué à mettre en place pour si peu ?
Je ne maitrise absolument pas les sessions et cookies
0
BadGuitarist Messages postés 367 Date d'inscription   Statut Membre Dernière intervention   27
 
Si ce n'est que cela, je peux t'aider ;-)
0
rasteda Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   1
 
bah ecoutes avec plaisir !!
tu commencerais par quoi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BadGuitarist Messages postés 367 Date d'inscription   Statut Membre Dernière intervention   27
 
On va déjà commencer par les fonctions qui permettent de :
- créer un cookie setCookie
- de lire un cookie getCookie
que tu mets dans un fichier javascript (gestionCookies.js) intégré à ton projet.

      function setCookie(name, value, days)
      {
        var aujourdhui = new Date() ;
        var expdate = new Date() ;
 
        expdate.setTime( aujourdhui.getTime() + ( days*24*60*60*1000 ) )
	document.cookie=name+"="+value+("; expires="+expdate.toGMTString());
      }

      function getCookie(sName)
      {
        var oRegex = new RegExp("(?:; )?" + sName + "=([^;]*);?");
 
        if (oRegex.test(document.cookie))
        {
          return decodeURIComponent(RegExp["$1"]);
        }
        else
        {
          return -1;
        }
      }
0
BadGuitarist Messages postés 367 Date d'inscription   Statut Membre Dernière intervention   27
 
Dans la partie <head> ... </head> de tes pages qui utilisent les cookies,
tu ajoutes la ligne qui donne accès au fichier gestionCookies.js décrit précédemment :

  <script language="javascript" type="text/javascript" src="js/gestionCookies.js" ></script>


A présent, il nous faut gérer le clic-souris pour qu'il fasse appel à notre fonction setCookie.
Dans votre menu, il faut pouvoir ajouter un évènement onclik sur une balise <a href ...> ou sur un <td ...>
pour y mettre le code suivant :

    <td ... onclick="setCookie('menu', 'option1');" >


Le plus compliqué est à venir, c'est le rafraichissement du menu :
avant l'affichage du menu, il faut que tu vérifies la valeur du cookie menu :

    if getCookie("menu")=="option1'


pour mettre en valeur l'option choisie par l'utilisateur.
0
rasteda Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   1
 
Super !!!
Je m'y mets dès ce soir et je te tiens au courant ...

Merci ;-)
0