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

Langage PHP Discussion :

Menu hierarchique php mysql javascript


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Par défaut Menu hierarchique php mysql javascript
    bonjour,
    je souhaite créer , un menu déroulant vertical genre accordéon mais couplé avec une base de données.
    j'ai téléchargé le menu déroulant vertical2 dans la galerie
    http://css.developpez.com/galerie/?p...-verticaux#MV2
    Pour cela, j'ai structuré ma base de données et réalisé la table suivante:
    http://creuselimousin.free.fr/table.jpg
    voici le code html pour incorporer mon script php
    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
    <div id="menu">
     
      <div class="menu" id="menu1" onclick="afficheMenu(this)">
    		<a href="#">Menu 1</a>
    	</div>    
     
    	<div id="sousmenu1" style="display:none">
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 1.1</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 1.2</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 1.3</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 1.4</a>
    		</div>
    	</div>
     
    	<div class="menu" id="menu2" onclick="afficheMenu(this)">
    		<a href="#">Menu 2</a>
    	</div>
    	<div id="sousmenu2" style="display:none">
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 2.1</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 2.2</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 2.3</a>
    		</div>
    	</div>
     
    	<div class="menu" id="menu3" onclick="afficheMenu(this)">
    		<a href="#">Menu 3</a>
    	</div>
     
    	<div class="menu" id="menu4" onclick="afficheMenu(this)">
    		<a href="#">Menu 4</a>
    	</div>
    	<div id="sousmenu4" style="display:none">
    		<div class="sousmenu">
    			<a href="#" >Sous-Menu 4.1</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 4.2</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 4.3</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 4.4</a>
    		</div>
    		<div class="sousmenu">
    			<a href="#">Sous-Menu 4.5</a>
    		</div>
    	</div>
    </div>
    et le script php pour afficher les menus et sous menus correspondants:
    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
     <?php
        mysql_select_db($database_dream, $dream);
        $query = 'SELECT item_menu, id_menu FROM menu WHERE id_menu_dir is NULL';
        $data = mysql_query($query) or die(mysql_error());
        echo '<div id="menu">';
        $i = 1;
        while($row = mysql_fetch_assoc($data)) {
        echo '<div class="menu" id="menu' . $i++ . '" onclick="afficheMenu(this);"><a href="#">' . $row['item_menu'] . '</a></div>';
        $subQuery = 'SELECT item_menu FROM menu WHERE id_menu = ' . $row['id_menu'];
        $subData = mysql_query($subQuery) or die(mysql_error());
        echo '<div id="sousmenu1" style="display:none;">';
        $j = 1;
        while ($subRow = mysql_fetch_assoc($subData)) {
        echo '<div class="sousmenu"><a href="#">' . $subRow['item_menu'] . '</a></div>';
        }
        echo '</div>';
        }
     
        echo '</div>';
        ?>
    les menus principaux apparaissent , mais aucuns sous menus.
    Avez-vous une idée de l'erreur?
    Merci de m'aider

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 149
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="sousmenu1" style="display:none;">
    Sûr qu'il ne sont pas là du tout ? Dans la source html ?

    Edit: En fait, tu as une erreur dans $subQuery, tu as sélectionné le mauvais id pour ta "jointure" des sous menus.

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Par défaut
    et alors la solution d'après toi?
    j'ai modifié avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       $subQuery = 'SELECT item_menu FROM menu WHERE id_menu_dir =' . $row['id_menu'];
    j'ai bien le menu principal de ordinateurs portable le premier menu avec les sous menus , mais pas les autres?

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 149
    Par défaut
    Bizarre, ça devrait rouler...
    Les autres sous menu sont ils présent dans la source html ?

    Peut être ceci qui cloche pour un bon affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<div id="sousmenu'.$i.'" style="display:none;">';
    Et initialise $i à 0 aulieu de 1.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Par défaut
    merci encore
    la modification mélange les sous menu par rapport aux menus principaux.

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 149
    Par défaut
    Humm... en fait remet $i = 1 et ça devrait le faire


    Edit: et non alors en fait, on va changer l'itération
    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
    <?php
    mysql_select_db($database_dream, $dream);
    $query = 'SELECT item_menu, id_menu FROM menu WHERE id_menu_dir is NULL';
    $data = mysql_query($query) or die(mysql_error());
    echo '<div id="menu">';
    $i = 1;
    while($row = mysql_fetch_assoc($data)) {
    echo '<div class="menu" id="menu' . $i . '" onclick="afficheMenu(this);"><a href="#">' . $row['item_menu'] . '</a></div>';
    $subQuery = 'SELECT item_menu FROM menu WHERE id_menu = ' . $row['id_menu'];
    $subData = mysql_query($subQuery) or die(mysql_error());
    echo '<div id="sousmenu' . $i . '" style="display:none;">';
    $j = 1;//??
    while ($subRow = mysql_fetch_assoc($subData)) {
    echo '<div class="sousmenu"><a href="#">' . $subRow['item_menu'] . '</a></div>';
    }
    echo '</div>';
    $i++;
    }
     
    echo '</div>';
    ?>

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

Discussions similaires

  1. [DOM] menu dynamique php mysql javascript
    Par maxland dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/03/2009, 14h02
  2. Réponses: 10
    Dernier message: 22/03/2007, 08h36
  3. [MySQL] [PHP, MySQL, Javascript] Problème Variables
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/05/2006, 11h57
  4. [SGBD] Probleme menu css /php / mysql / javascript
    Par vincedjs dans le forum Administration
    Réponses: 14
    Dernier message: 21/02/2006, 17h51

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