salut,
En fait le principe est assez simple pour quelqu'un comme moi qui n'y connait rien en php.
Dans mon exemple, j'ai un menu dépliant contenant des sous menus qui renvoient à des pages html, qui elles mêmes contiennent:
-le contenu indiqué par les sous menu
-ainsi que le menu lui-même.
Par exemple:
Menu A
Sous menu 01
Sous menu 02
Menu B
Sous menu 03
Sous menu 04
Quand on clique sur Menu A, le sous menu apparait, et quand on clique sur "Sous menu 01", la page contenant ce qui est indiqué par sous-menu 01 apparait.
Comme ce sont des pages html, le menu entier est chargé dans chaque page html et donc revient à sa position d'origine, replié.
Le solution est donc d'abord de définir par l'intermédiaire des CSS 2 classes, une pour la position "sélectionné" du sous menu (quand on est sur la page visée, le sous menu reste surligné par exemple), et une classe pour la position non sélectionnée.
Ensuite le php entre en jeu et permet au menu, selon la page que l'on a chargée, de savoir d'une part quel menu doit rester déplié (on suppose qu'il y a plusieurs item menu, contenant chacun plusieurs sous menus) et d'autre part quel sous menu doit rester surligné pour montrer au visiteur dans quelle page il se trouve.
C'est assez simple à mettre en place, pour la première étape qui consiste à indiquer quelle partie du menu doit rester déplié, il faut insérer dans le code du menu ce code :<?php if ($nav_ouvert == 'rubrique0') {echo ' style="display:block"';} else {echo ' style="display:none"';} ?>
, si il repère dans la page chargé l'élément 'rubrique0', il doit se déplier (display:block) sinon, il reste plié (display:none).
Pour lui montrer ça, il faut donc que dans la page qui est visée et pour laquelle il doit se déplier soit présent l'élément en question, il faut donc l'insérer dans la page cible sous la forme <?php $nav_ouvert = 'rubrique0'; ?>
Pour info, les noms 'nav_ouvert' et 'rubrique0', sont à ton libre choix, tu peux écrire ce que tu veux à partir du moment que ce sont les mêmes mots qui sont utilisés dans le menu et dans la page cible.
Enfin, pour que le menu sache si un sous menu doit être surligné ou pas, c'est le même principe. Si un élément défini est présent dans la page cible, la classe "surligné" est active sinon, le sous menu reste non surligné.
Le code à insérer pour ce cas est celui ci par exemple <?php if ($nav_en_cours == 'rubrique1') {echo ' class="sousmenuON"';} else {echo ' class="sousmenu"';} ?>
Si l'élément 'rubrique1' est présent dans la page cible, le sous menu est surligné, en utilisant la class CSS correspondante (ici, class="sousmenuON"), sinon, on laisse la class normale (ici class="sousmenu").
Voilà la principe, ça fonctionne parfaitement.
@+