IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fermer un sous-menu déroulant


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Fermer un sous-menu déroulant
    Bonjour,

    Je m'occupe d'un site animé par une petite équipe de bénévoles et consacré au Diaporama Créatif Court.
    Je donne l'adresse pour que vous puissiez récupérer la source ( et non pour spamer !) : http://sitedudccn.com/accueil.php

    J'ai un menu déroulant horizontal. Je n'arrive pas à trouver le code pour fermer les fenêtres des sous-menus.
    Quelqu'un peut-il nous aider ?

    Merci
    Voici le début et la fin du code utilisé pour le menu déroulant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <!--DEBUT  MENU DEROULANT  --> 
    <script type="text/javascript">
     
    window.onload=montre;
    function montre(id) {
    var d = document.getElementById(id);
    	for (var i = 1; i<=10; i++) {
    		if (document.getElementById("smenu"+i)) {document.getElementById("smenu"+i).style.display="none";}
    	}
    if (d) {d.style.display="block";}
    }
     
    </script>
     
    <div id="menu">
    	<dl>
    		<dt onmouseover="javascript:montre();"><a href="http://sitedudccn.com/accueil.php" title="Back to the home page" class="petittitre">Accueil</a></dt>
    	<dt onmouseover="javascript:montre();"><a href="http://sitedudccn.com/aides.html" title="Help for the realization of a digital slide show" class="petittitre">Aides à la réalisation</a></dt>
     
     
    	</dl>
     
    	<dl>			
    		<dt class="petittitreb" onmouseover="javascript:montre();"><a href="http://sitedudccn.com/espce/" title="Towards the forum and analysis of DCCN" target="_blank" class="petittitre">Forum et Analyses</a></dt>
    		<dt class="petittitreb" onmouseover="javascript:montre();"><a href="http://sitedudccn.com/VISUALISATION/terrerouge.php" title="Display immediatly
     a DCCN" class="petittitreb">Visualisation directe</a></dt>
     
    	</dl>
     
     
    	<dl>	
    		<dt class="petittitreb" onmouseover="javascript:montre('smenu3')
     
    		   ;
     
    .......
    ........
    ........
    ........		
     
    		<dt class="petittitreb" onmouseover="javascript:montre('smenu6');"title="Links - Festivals and galas of french DCCN">Liens - Festivals
     
            <dd id="smenu6">
    			<ul class="petittitreb">
     
    				<li><a href="liens.html"> Liens </a></li>
    				<li><a href="festivals.html">Festivals et galas </a></li>
     
    		  </ul>
    	    </dd>
    </dt>
     
     
     
     
    		<dt class="petittitreb" onmouseover="javascript:montre('smenu7');"title="About this Site">Le Site du DCCn
    		<dd id="smenu7">
    			<ul class="petittitreb">
     
    				<li><a href="objectifs.html">Objectifs</a></li>
    				<li><a href="historique.html"> Historique</a></li>
    				<li><a href="qui.html"> Qui sommes nous?</a></li>
    				<li><a href="Proposition_DCCN.html"> Proposer un DCCN </a></li>
    				<li><a href="abonnement.html"> S'inscrire aux news</a></li>
    				<li><a href="mises_en_ligne.php"> Calendrier</a></li>
    				<li><a href="faq.html"> Foire aux questions</a></li>
    				<li><a href="http://sitedudccn.com/ECHANGES/accueil_ECHANGES.php"> ESPACE ÉCHANGES</a></li>
    				<li><a href="http://sitedudccn.com/EP/index.html"> ESPACE PRIVÉ</a></li>
     
    		  </ul>
    	    </dd>
    	  </dt> </div>
     
     
    <!--FIN MENU DEROULANT  -->

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Horreur du javascript !

    Il faut que tu ajoutes des evenements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onmouseout="javascript:montre();

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci, sabotage, de ta réponse.
    Mais où faut-il placer ton code "onmouseout="javascript:montre();" ?
    Je l'ai placé plusieurs fois et à différents endroits de ma page et cela ne fonctionne pas !
    Re-help ! Merci.
    Horreur du Java-script ? Existe-t-il un bon script de menu déroulant en PHP ?

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="menu" onmouseout="montre();">
    Sinon :
    Existe-t-il un bon script de menu déroulant en PHP ?
    Je vais essayer de résumer :
    PHP est un langage serveur... il ne peut donc pas gérer les événements coté client, donc la réponse est NON, il n'y a ni de bons ni de mauvais scripts php pour les menus déroulant !!!

    En revanche, il existe de très bonnes solutions en CSS

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    J'espère que t'as pas essayé ma solution car elle est fausse...
    En fait, le truc chiant dans le code, c'est que pour arriver sur le sous-menu, tu passes par beaucoup d'éléments, donc le mouseover est facile à gérer, mais le mouseout un peu plus complexe...

    Une solution qui semble fonctionner :
    -> Tu oublies mon message précédent
    -> Tu ajoutes à chaque dl et dd ayant un sous menu un onmouseout="montre()"
    -> Tu ajoutes à chaque dt ayant un sous menu un onmouseover="montre('id_du_sousmenu')"
    -> Tu ajoutes à chaqueli un onmouseout="montre('id_du_sousmenu')"
    -> Tu testes...
    -> Au passage tu en profites pour virer tous les javascript: dans les onmoueover (c'est inutile)

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Pendant un certain temps......(Hum!!!) j'ai pensé abandonner....
    Et j'ai voué Bovino aux gémonies.....
    Mais:
    Le principe était là!
    Juste une petite erreur.
    C'est:
    <dl onmouseover="montre('ID_sousmenu'')" >
    <dt onmouseover="montre();"
    <dd id="'ID_sousmenu'" onmouseout="montre()">
    <li onmouseout="montre('ID_sousmenu')">

    Grand Merci Bovino !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut menu deroulant php
    Je savais pas trop ou mettre mon message...
    Voila j'ai un petit probleme. J'ai réalisé deux menus deroulants, le 2éme depent du premier. Mais le problème c'est que lorsque je selectionne un nom dans la première liste il selectionne bien mais il m'affiche systematiquement le premier de la liste... J'espère que c'est clair. N'hésitez pas à me demander si c'est pas le cas.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    <?php 
    $idr = isset($_POST['nom_projet'])?$_POST['nom_projet']:null; 
     
    $bdd = mysql_connect('localhost','root','')
    	or die("Erreur de connexion au serveur.");
     
    mysql_select_db('gestion',$bdd)
    	or die ("erreur de connexion base");
     
    $sql = 'SELECT DISTINCT nom_projet FROM `sous-projet` ORDER BY nom_projet '; 
     
    $sql1 = 'UPDATE metrique SET commentaire = "" where 1';
     
     
    $req1 = mysql_query($sql1)
    	or die ("erreur1");
     
    $req = mysql_query($sql)
    	or die ("erreur2");
     
    $num_ligne = mysql_num_rows($req);
     
    while($row = mysql_fetch_array($req) )
    {
    	$nom_projet[] = $row['nom_projet'];
    }
    ?>
     
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="onglet.css" />
    </head>
    <body>
     
    <div class="menu4">
    </div>
     
    <div class="menu2">
    <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="formulaire">
    Sélectionner un projet : 
    	<select name="nom_projet" id="nom_projet" onchange="document.forms['formulaire'].submit();"> 
    	<?php for($i=0;$i<$num_ligne;$i++){ ?>
    	<option value="<?php echo($nom_projet[$i]); ?>"> <?php ((isset($idr) && $idr == $nom_projet[$i])?" selected=\"selected\"":null) ?><?php echo $nom_projet[$i] ?> </option>
    	<?php } ?>
    	</select>
    <?php
        mysql_free_result($req); 
     
      if(isset($idr) && $idr != -1)
        { 
            $sql2 = 'SELECT DISTINCT nom_sous_projet FROM `sous-projet`  WHERE `nom_projet` = "'. $idr .'"ORDER BY nom_sous_projet'; 
     
            $req2 = mysql_query($sql2)
            or die ("erreur3");
            $num_ligne2 = mysql_num_rows($req2);
            echo $num_ligne2;
            while($row = mysql_fetch_array($req2) )
            {
                    $nom_sous_projet[] = $row['nom_sous_projet'];
                    echo $nom_sous_projet[0];
                    echo $nom_sous_projet[1];
            }
     
    }
    ?>
    <P>
    Sélectionner un sous projet : 
    	<select name="nom_sous_projet" id="nom_sous_projet">
    	<?php for($j=0;$j<$num_ligne2;$j++){ ?>
    	<option value="<?php echo($nom_sous_projet[$j]); ?>"> <?php echo $nom_sous_projet[$j] ?> </option>
    	<?php }?>
    	</select>
     
    </div>
    </body>
    </html>
    Je pense que le problème se situe la "onchange="document.forms['formulaire'].submit();"" mais je vois pas quoi mettre a la place
    Merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Position sous-menu déroulant
    Par Bertrand79 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 15/09/2008, 15h06
  2. Barre de menu et sous-menu déroulant
    Par Ginko dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 04/07/2008, 07h08
  3. sous menu déroulant - IE & FF
    Par pop_up dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 14/11/2007, 15h36
  4. Comment placer un sous menu déroulant
    Par boo64 dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 10/01/2007, 23h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo