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

Fermé
rasteda Messages postés 34 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 3 mai 2010 - 1 janv. 2010 à 15:32
rasteda Messages postés 34 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 3 mai 2010 - 2 janv. 2010 à 16:04
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 dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
1 janv. 2010 à 18:02
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 dimanche 20 décembre 2009 Statut Membre Dernière intervention 3 mai 2010 1
1 janv. 2010 à 18:20
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 dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
1 janv. 2010 à 18:29
Si ce n'est que cela, je peux t'aider ;-)
0
rasteda Messages postés 34 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 3 mai 2010 1
1 janv. 2010 à 21:11
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 dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
2 janv. 2010 à 00:13
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 dimanche 12 octobre 2008 Statut Membre Dernière intervention 20 octobre 2013 27
2 janv. 2010 à 00:36
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 dimanche 20 décembre 2009 Statut Membre Dernière intervention 3 mai 2010 1
2 janv. 2010 à 16:04
Super !!!
Je m'y mets dès ce soir et je te tiens au courant ...

Merci ;-)
0

Discussions similaires