Problème de sous menu déroulant javascript

djood Messages postés 5 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 avril 2008 - 23 avril 2008 à 12:18
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 23 avril 2008 à 19:15
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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 avril 2008 à 12:31
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]
0
djood Messages postés 5 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 avril 2008
23 avril 2008 à 13:17
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)
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 avril 2008 à 13:20
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 !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 avril 2008 à 13:24
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 !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
djood Messages postés 5 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 avril 2008
23 avril 2008 à 13:29
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?
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 avril 2008 à 14:00
>>é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]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 avril 2008 à 14:15
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 !!!
0
djood Messages postés 5 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 avril 2008
23 avril 2008 à 14:22
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
0
djood Messages postés 5 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 23 avril 2008
23 avril 2008 à 14:25
nicomilville,
ha ha ha oui désolé je comprends, merci tout de même.
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
23 avril 2008 à 14:28
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 !!!
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
23 avril 2008 à 19:15
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)
0
Rejoignez-nous