[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 -
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>
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:
- [PHP] conserver séléction d'un menu déroulant
- Menu déroulant excel - Guide
- Excel menu déroulant en cascade - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
- Supprimer menu déroulant excel - Forum Word
- Effacer le contenue d'une cellule avec liste déroulante - Forum Excel
7 réponses
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.
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
- 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; } }
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 :
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 :
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 :
pour mettre en valeur l'option choisie par l'utilisateur.
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.