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 :

[Javascript] Faire un menu dynamique


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut [Javascript] Faire un menu dynamique
    Bonjour à tous,

    Je viens vers vous pour que vous me guidiez dans ma création. Ca fait longtemps que je cherche à faire un menu verticale et je n'y arrive pas. Là j'ai trouvé un script qui correspond à ma recherche. Le hic, c'est que les menus et sous menus se trouvent dans une bdd.

    Je pense que tout se joue dans la boucle de javascript?? mais jsai pas trop. Voici le code pouvez vous m'éclairer???

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    <!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</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
    <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>
     
     
    <style type="text/css">
    body {
    margin: 0;
    padding: 0;
    background: white;
    font: 80% verdana, arial, sans-serif;
    }
    dl, dt, dd, ul, li {
    margin: 0;
    padding: 0;
    list-style-type: none;
    }
    #menu {
    position: absolute;
    top: 0;
    left: 0;
    }
    dl#menu {
    width: 15em;
    }
    dl#menu dt {
    cursor: pointer;
    margin: 2px 0;;
    height: 20px;
    line-height: 20px;
    text-align: center;
    font-weight: bold;
    border: 1px solid gray;
    background: #ccc;
    }
    dl#menu dd {
    border: 1px solid gray;
    }
    dl#menu li {
    text-align: center;
    background: #fff;
    }
    dl#menu li a, dl#menu dt a {
    color: #000;
    text-decoration: none;
    display: block;
    border: 0 none;
    height: 100%;
    }
     
    dl#menu li a:hover, dl#menu dt a:hover {
    background: #eee;
    }
     
    #mentions {
    font-family: verdana, arial, sans-serif;
    position: absolute;
    bottom : 200px;
    left : 10px;
    color: #000;
    background-color: #ddd;
    }
    #mentions a {text-decoration: none;
    color: #222;
    }
    #mentions a:hover{text-decoration: underline;
    }
     
    -->
    </style>
    </head>
     
    <body>
     
    <dl id="menu">
     
    		<dt onclick="javascript:montre();"><a href="#">Menu 1</a></dt>
     
    		<dt onclick="javascript:montre('smenu2');">Menu 2</dt>
    			<dd id="smenu2">
    				<ul>
    					<li><a href="#">Sous-Menu 2.1</a></li>
    					<li><a href="#">Sous-Menu 2.2</a></li>
     
    					<li><a href="#">Sous-Menu 2.3</a></li>
    				</ul>
    			</dd>	
     
    		<dt onclick="javascript:montre('smenu3');">Menu 3</dt>
    			<dd id="smenu3">
    				<ul>
    					<li><a href="#">Sous-Menu 3.1</a></li>
    					<li><a href="#">Sous-Menu 3.1</a></li>
     
    					<li><a href="#">Sous-Menu 3.1</a></li>
    					<li><a href="#">Sous-Menu 3.1</a></li>
    					<li><a href="#">Sous-Menu 3.1</a></li>
    					<li><a href="#">Sous-Menu 3.1</a></li>
    				</ul>
    			</dd>
     
    		<dt onclick="javascript:montre('smenu4');">Menu 4</dt>
    			<dd id="smenu4">
    				<ul>
    					<li><a href="#">Sous-Menu 4.1</a></li>
    					<li><a href="#">Sous-Menu 4.1</a></li>
    				</ul>
    			</dd>
     
     
    </dl>
    </body>
    </html>

  2. #2
    Membre éprouvé Avatar de trattos
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 000
    Points : 1 080
    Points
    1 080
    Par défaut
    Je ne vois pas ou est le problème, tu affiches la valeur du menu correspondante dans ta base de données à la place de "Sous menu" c'est tout!
    - Récupération
    - Affichage
    T'as juste deux trucs à faire!

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    ce que tu veux dire c'est que je mette la clé de ma catégorie dans le javascript??

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    Je viens de réussir à composer mon menu le seul hic c'est les lien pour ouvrir ou fermer la menu (donc voir ou non les sous menus)

    C'est un problème dans mon javascript???
    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
    <?php
    require('public/fonctions.php');
    $conn = g_connect();
    $rep = '../img';
    $essai = 'cours';
    $sql = " SELECT cat_cle, cat_lib FROM categorie WHERE cat_lib like '%20%' ORDER BY cat_lib DESC ";
    $qry = pg_query($conn, $sql);
    $result = pg_fetch_assoc($qry);
    ?>
    <head>
    <title>Menu déroulant vertical</title>
    <script type="text/javascript">
    window.onload=montre;
    function montre(id) {
    	var d = document.getElementById(id);
    	if (document.getElementById(<?=$result['cat_cle']?>))
       		{
    		document.getElementById(<?=$result['cat_cle']?>).style.display='none';}
       		}
    	if (d)
    		{
    		d.style.display='block';
    		}
    }
    </script>
    </head>
     
    <body>
     
    <dl id="menu">
    	<?
    	while ($result = pg_fetch_assoc($qry))
    		{
    	?>
          <dt onclick="javascript:montre('<?=$result['cat_cle']?>');"><?=$result['cat_lib']?></dt>
             <dd id="smenu2">
                <ul>
                   <?
    			   $sql2 = " SELECT doc_cle, doc_lib, doc_type, doc_file, doc_cat FROM documents WHERE doc_cat=".$result['cat_cle']." ORDER BY doc_lib DESC ";
    			   $qry2 = pg_query($conn, $sql2);
    			   while ($result2 = pg_fetch_assoc($qry2))
    			   		{
    					$clefile = $result2['doc_file'];
    			   ?>
    			   <li><a href="../admin/file.php?cle=<?=$result2['doc_cle']?>&oid=<?=$clefile?>&doc_type=<?=$result2['doc_type']?>" target="bodemer"><?=$result2['doc_lib']?></a></li>
    			   <?
    			   		}
    				}
    			   ?>
                </ul>
             </dd>   
    </dl>
    </body>
    </html>

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    je ne comprend pas trop...
    Tu pourrais me donner un exemple ou me corriger le code de mon dernier message

  6. #6
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    ajoute onMouseOut="javascript:montre('')" à ta balise dd

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 40
    Points : 24
    Points
    24
    Par défaut
    ça ne fait rien...
    AVec le code précédent la visualisation me donne bien toutes mes rubriques et les sous rubriques qui l'accompagne.
    Tout est ouvert ce que je ne souhaite pas, j'aimerai avoir que la première d'ouverte (rubrique).
    Et quand on clique sur la rubrique, ses sous rubrique se dévoilent ... ça ça ne fonctionne pas.

    Alors que dans le statique ça fonctionnait.
    Je dois avoir un pb avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
    window.onload=montre;
    function montre(id) {
    	var d = document.getElementById(id);
    	if (document.getElementById(<?=$result['cat_cle']?>))
       		{
    		document.getElementById(<?=$result['cat_cle']?>).style.display='none';}
       		}
    	if (d)
    		{
    		d.style.display='block';
    		}
    }
    </script>

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

Discussions similaires

  1. Comment faire un menu dynamique
    Par pierrot2908 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 25/06/2009, 18h52
  2. [Smarty] Faire un menu dynamique
    Par Droup dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/03/2008, 20h01
  3. comment faire un menu dynamique
    Par gilardino dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 14/08/2007, 15h51
  4. [PHP-JS] menu dynamique, comment faire?
    Par jeff1985 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2006, 14h57
  5. faire un menu dynamique
    Par Phiss dans le forum ASP
    Réponses: 5
    Dernier message: 18/05/2006, 16h01

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