Bonjour,

Pour un site d'e-learning, j'utilise un menu déroulant vertical avec balises dl/dt et dd, expliqué dans le tutoriel d'Alsacreations:

http://css.alsacreations.com/Construction-de-menus-en-CSS/Un-menu-deroulant-en-CSS-et-XHTML-vertical-et-horizontal

Ma question est la suivante:
En navigant d'une page à l'autre, j'aimerais que le menu vertical garde en mémoire quel élément est ouvert (les sous-éléments sont montrés) et quel élément est fermé (les sous-éléments sont cachés). Pour l'instant, le menu se recharge à chaque fois et cache tous les sous-éléments.

Pour mon site, ce n'est pas très indiqué, notamment en termes d'ergonomie.

Dois-je utiliser un cookie pour garder en mémoire cela?
J'en ai déjà utilisés pour un styleswitcher, mais je ne sais pas comment faire le lien entre le code javascript des cookies et le code javascript du menu déroulant (tiré du tutoriel).

Une autre solution serait d'utiliser des iframes... mais je n'y tiens pas trop.

Merci d'avance pour vos réponses.

Stéphane
digitalsteph a écrit :
Dois-je utiliser un cookie pour garder en mémoire cela?

Non, c'est plutôt côté serveur que cela se passe. Il faut, en générant le code HTML de la page (et en l'occurrence du menu), adapter ce code pour pouvoir afficher le sous-menu correspondant à la rubrique en cours.
À vrai dire, je ne suis pas sûr que ce soit possible avec ce menu déroulant (qui n'est pas vraiment fait pour qu'un élément puisse rester ouvert...). Contrairement au menu en accordéon également proposé dans les tutoriels, qui prévoit ce cas de figure.
Bonjour,

je debarque sur ce forum, en cherchant une reponse concernant ce meme menu deroulant.

Pour ce qui est de conserver le menu ouvert a la rubrique en cours, j'utiliserais une variable de session type $_SESSION['smenu'], en conditionnant la fonction javascript à l'existence ou non de cette fonction.
Bon courage Smiley smile
Merci pour vos réponses.

J'ai testé le menu en accordéon. Ca marche très bien. Merci pour le tuyau Florent V.

Dans les css, j'ai juste rajouté "width: 100%" sur la balise span. Comme çà, toute la surface de la barre de menu est cliquable, et pas seulement le texte du menu. C'est juste un petit plus "ergonomique".

Merci numérosix pour la solution Javascript. Je vais étudier la question (même si je n'y connais pas grand chose).