11524 sujets

JavaScript, DOM et API Web HTML5

Bonjour, j'ai un menu déroulant en CSS.
Par défaut, tous les sous-menus sont cachés, mais quand on clique sur un nom, un sous-menu s'ouvre avec des liens qui chargent une page en include (php).

Mon problème : comme la page se recharge lorsque l'on clique sur un sous-lien; mon menu se reloade et tous les sous-menus sont de nouveau cachés.
Or je voudrais que les sous-menus qui ont été ouverts restent ouvert...

On m'a suggéré de faire ça en AJAX mais je n'y comprend rien.

En fait si j'ai bien capté; il faudrait que j'attribue à chaque sous-menu une variable (0 -par défaut- ou 1) pour l'affichage, et qu'un script charge cette variable à l'ouverture de la page pour savoir si oui ou non il doit afficher le sous-menu correspondant.

Pourriez vous m'aider ?
Je suis vraiment dans la panade...

Merci BEAUCOUP
Modifié par gordie (13 Oct 2006 - 16:35)
Slt,

Le problème est que tu utilises du javascript pour dérouler tes menus et que ce qui est fait sur le navigateur n'est pas retenu sur le serveur.

[au passage] Si le javascript est disabled, tes sous-menus ne sont pas accésibles [/au passage]

Si tu utilises une solution full PHP, tu peux garder des variables de sessions pour savoir quel menu est cliqué ou pas. L'autre solution est AJAX mais je ne suis pas assez spécialiste.
Ben je suppose que je peux pas le faire en PHP, puisque quand on clique sur un lien qui déroule un menu; le menu se déroule mais on reste sur la page.
Dès lors, comment pourrais-je exécuter un script php ??
C'est bon, j'ai trouvé une astuce...
Quand on clique sur menu1 par exemples;
le sousmenu1 s'ouvre et les autres se rétractent.
Ensuite, si l'on clique sur un lien du sousmenu1 par exemple; dans la page qui s'ouvre; un script dit de montrer le sousmenu1 (alors que par défaut tout est fermé).
Du coup, ça fonctionne très simplement !
On ne peut plus avoir plusieurs sousmenus ouverts en même temps, mais ça c'est pas grave...

Merci, a+ !