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

PHP & Base de données Discussion :

Menu et sous-menu déroulant


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 127
    Points : 49
    Points
    49
    Par défaut Menu et sous-menu déroulant
    Bonjour à tous,

    J'aimerais pouvoir afficher un menu, avec un sous menu déroulant.

    J'ai préparé une requête, que je sais fonctionnelle:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.*, GROUP_CONCAT(b.id,',',b.name,',', b.slug SEPARATOR '|') as Subpage
    FROM posts as a
    LEFT JOIN posts as b ON a.id = b.post_id
    WHERE a.TYPE = 'page' AND a.post_id is NULL
    GROUP BY a.id;


    Dans un tuto en POO/MVC, voici comment on affiche la requête pour un menu/sous-menu:
    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
    <ul class="nav navbar-nav">
        <?php $pagesMenu = $this->request('Pages','getMenu'); ?>
        <?php foreach($pagesMenu as $p): ?>
            <?php if (!empty($p->Subpage)): ?> //on vérifie si subpage est différent de vide
                  <li class="dropdown">
                       <a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo $p->name; ?><b class="caret"></b></a>
                       <ul class="dropdown-menu">                 
                <?php
                    $subpages = explode('|',$p->Subpage); // on explode sur le pipe pour récuperer les ensembles de chaines
                    foreach ($subpages as $subpage){ // on boucle sur le array de l'explode
                        $sub = explode(',',$subpage); // on explode sur la virgule pour récupérer les éléments de la chaines
                ?>
                            <li><a href="<?php echo Router::url('pages/view/id:'.$sub[0].'/slug:'.$sub[2]); ?>" title="<?php echo $sub[1] ?>"><?php echo $sub[1]; ?></a></li>
                <?php
                    }
                ?>
                      </ul>
                  </li>
            <?php else: ?> // si subpage est vide, on construit le menu normalement
                 <li>
                     <a href="<?php echo Router::url('pages/view/id:'.$p->id.'/slug:'.$p->slug); ?>" title="<?php echo $p->name; ?>"><?php echo $p->name; ?></a>
                 </li>
            <?php endif ?>
        <?php endforeach; ?>
    </ul>

    J'aimerais partir sur le même principe pour afficher mon menu et le sous-menu correspondant, mais je n'arrive pas à adapter ce code, moi qui ne suis pas en POO ni en MVC


    Si quelqu'un pouvait m'aider...

    D'avance merci!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Qu'est ce que tu veux affiché depuis t'a requette et comment tu veut l'affiché.
    affiche un retour de ta table et du html static pour pouvoir t'aidé
    A la recherche d'un film : http://chercher-un-film.com

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 127
    Points : 49
    Points
    49
    Par défaut
    Bon, et bien déjà, merci de votre aide.

    Voici ma table, et le résultat de ma requête:
    http://sqlfiddle.com/#!2/f4252/21

    Ensuite, en statique, voici le résultat que j'espère avoir (enfin, que je dois avoir lol):
    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
     
    <nav class="container">
        <div class="navbar navbar-default" role="navigation">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            	   <span class="sr-only">Toggle navigation</span>
    		    <span class="icon-bar"></span>
    		    <span class="icon-bar"></span>
    		    <span class="icon-bar"></span>
    	     </button>
            </div>
            <div class="navbar-collapse collapse">
                   <ul class="nav navbar-nav">
            		<li class="active"><a href="#">Accueil</a></li>
                            <li><a href="#">Les vétérinaires</a></li>
                			<!-- Sub menu -->
    			 <li class="dropdown">
                  			<a href="#" class="dropdown-toggle" data-toggle="dropdown">Nos services <b class="caret"></b></a>
                  			      <ul class="dropdown-menu">
                  					<li><a href="#">Consultations spécialisées oiseaux</a></li>
    				                <li><a href="#">Ostéopathie</a></li>
    				                <li><a href="#">Aromathérapie</a></li>
    				       </ul>
                		</li>
                             <li><a href="#">Visite des cabinets</a></li>
                			<li><a href="#">Nos produits</a></li>
                			<li><a href="#">Animaux perdus ou à adopter</a></li>
                			<li><a href="#">Liens</a></li>
                			<li><a href="#">Coordonnées</a></li>
              			</ul>
            		</div><!--/.nav-collapse -->
          		</div>
          	</nav>

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Première question
    - ou se trouve la sous-catégorie "Consultations spécialisées oiseaux" dans votre table de BDD?

    Si tu peux ajouter une colonne position dans votre table pour avoir le trie des menus.
    A la recherche d'un film : http://chercher-un-film.com

Discussions similaires

  1. Ajouter un menu et sous menu suite au menu popup Profile As
    Par kkt8 dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 12/04/2013, 14h57
  2. [MySQL] Menu et sous menu déroulant
    Par feldi dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 07/01/2011, 10h09
  3. XML: Prob avec sous-menu d'un menu déroulant
    Par SirTurbo dans le forum Valider
    Réponses: 1
    Dernier message: 26/03/2009, 09h08
  4. 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
  5. Menu, avec sous menu et sous sous menu
    Par flolane dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/12/2006, 08h57

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