Problème de sous menu déroulant javascript

Signaler
Messages postés
5
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 avril 2008
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour à tous,
c'est mon premier post et je suis débutant en javascript.
je vous expose mon problème; j'ai installé un menu vertical qui contient des sous-menues
dans une page php jusque là tout va bien, mais quand je clique sur le lien d'un sous menu, celui-là se referme pendant que la page se charge
j'aimerai savoir si il y a une fonction qui garde un sous-menu ouvert
lors du chargement de la nouvelle page
merci

<script type="text/javascript">
function afficheMenu(obj){

var idTitreMenu = obj.id;
var idSousMenu = 'sous' + idTitreMenu;
var sousMenu = document.getElementById(idSousMenu);

/*****************************************************/
/** si le sous-menu correspondant au menu cliqué **/
/** est caché alors on l'affiche, sinon on le cache **/
/*****************************************************/
if(sousMenu.style.display == "none"){
sousMenu.style.display = "block";
}
else{
sousMenu.style.display = "none";
}
}
</script>

11 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

    tu nous en donnes peut-être trop peu...

>>j'aimerai savoir si il y a une fonction qui garde un sous-menu
>>ouvert
lors du chargement de la nouvelle page

    c'est quoi le chargement d'une nouvelle page ?
       enfn.. c'est fait comment ?

    sinon... il "suffit"   de ne pas faire le sousMenu.style.display = "block";
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
5
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 avril 2008

bonjour bultez,
alors voilà mon code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Menu déroulant vertical sur clic</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/javascript">
function afficheMenu(obj){

var idMenu = obj.id;
var idSousMenu = 'sous' + idMenu;
var sousMenu = document.getElementById(idSousMenu);

/*****************************************************/
/** on cache tous les sous-menus pour n'afficher **/
/** que celui dont le menu correspondant est cliqué **/
/** où 4 correspond au nombre de sous-menus **/
/*****************************************************/
for(var i = 1; i <= 4; i++){
if(document.getElementById('sousmenu' + i) && document.getElementById('sousmenu' + i) != sousMenu){
document.getElementById('sousmenu' + i).style.display = "none";
}
}

if(sousMenu){
//alert(sousMenu.style.display);
if(sousMenu.style.display == "block"){
sousMenu.style.display = "none";
}
else{
sousMenu.style.display = "block";
}
}

}
</script>
</head>



<?php
switch($_GET['pg']){
case 'accueil': // si $_GET['pg'] = accueil
include('accueil.php'); // alors on inclut le fichier accueil.php
break;

case 'livre': // si $_GET['pg'] = livre
include('livre.php'); // alors on inclut le fichier livre.php
break;

case 'contact': // si $_GET['pg'] = contact
include('contact.php'); // alors on inclut le fichier contact.php
break;

default: // si $_GET['pg'] ne correspond à rien, on inclut accueil.php par défaut.
include('accueil.php');
}

?>







[# Menu 1]






[index.php?pg=accueil Sous-Menu 1.1]




[index.php?pg=livre Sous-Menu 1.2]




[index.php?pg=contact Sous-Menu 1.3]




[# Sous-Menu 1.4]







[# Menu 2]






[# Sous-Menu 2.1]




[# Sous-Menu 2.2]




[# Sous-Menu 2.3]







[# Menu 3]





[# Menu 4]






[# Sous-Menu 4.1]




[# Sous-Menu 4.2]




[# Sous-Menu 4.3]




[# Sous-Menu 4.4]




[# Sous-Menu 4.5]








</html>

j'ai une page index php, qui contient un menu déroulant et une partie frame;
se que je souhaite faire c'est un menu comme celui du site : http://www.louvre.fr/llv/commun/home.jsp?bmLocale=fr_FR
qui quand tu clique sur un sous menu il ne se referme pas lorsque la nouvelle pages est chargé
(frame)
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Salut,

bultez ++, Exelente question, lol car si tu recharge ta nouvelle page par header(location... ou par document.location.href ... ça va se faire diffement de si tu ne recharge qu'une partie de la page : un ou plusieur div avec ajax ou non ....

Bref + d'infos serai les bienvenues !!!

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
oh !!! excusez moi, on s'est croisé !!!

ok donc tu recharge toute la page !!! je crois qu'il va falloir créer une petite fonction qui détecte quel sous menu était ouvert avant que la nouvel page s'ouvre et le réouvre sur la nouvelle page !!!

Si t'a besoin d'aide, MP !!!
Messages postés
5
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 avril 2008

bonjour nicomilville,
je suis heureux tu m'as compris,
étant-donné que je suis super nul en javascript, peux-tu me dire quel fonction dois-je utiliser pour que cela marche?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>étant-donné que je suis super nul en javascript,
    ce n'est pas une excuse... on peut apprendre
       ou ne pas utiliser  ! le javascript n'est  jamais obligatoire !

>> peux-tu me dire quel fonction dois-je utiliser
    pas un problème de fonctionn, mais de conception....
    prend donc un  truc "tout fait", "clé en main" ou "clé sur la porte"
             comme diraient nos amis d'outre Quiévrain....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
Au cas ou on ne se serait pas compris, il faut que tu créer une fonction comme je te l'ai expliqué plus haut, désolé je ne pense pas que l'on puissent te la faire car on ne fait pas de tout cuit ici sauf si rémunéré !!!

Si t'a besoin d'aide, MP !!!
Messages postés
5
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 avril 2008

Hé oui bultez,
donc je ne peux pas obtenir un site qui utilise des frames (includes php) avec un menu déroulant
car lorsque on clique dans un sous menu, il se referme tout de suite.
"étant-donné que je suis super nul en javascript" non pas vraiment j'ai des livres sur le javascript, donc quelques connaissances mais aujourd'hui je me retrouve coincer avec ce genre de conception; je pensai que si je rajoutai une fonction dans mon script j'obtiendrai un menu déroulant comme dans ce site : http://www.louvre.fr/llv/commun/home.jsp?bmLocale=fr_FR
Messages postés
5
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 avril 2008

nicomilville,
ha ha ha oui désolé je comprends, merci tout de même.
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
c'est pas grave, bonne chance on peut tout de même t'aider et te mettre sur la voie !!!

Si t'a besoin d'aide, MP !!!
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour à tous,
le principe de base est assez
simple...
à l'ouverture de ta page tu récupères l'adresse de la page en
cours de rechargement grâce à window.location.href puis lors de l'initialisation de ton menu tu
affiches le menu qui contient cette adresse en faisant appel à la méthode indexOf().
;O)