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 accordéon affiché dans une boucle


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Par défaut Menu accordéon affiché dans une boucle
    Bonjour à tous!
    Dans le cadre de la création d'un petit site, je voudrais afficher un menu accordéon (avec donc des sous menus) à l'aide d'une boucle while afin que le rendu soit comme sur cette photo: http://hpics.li/470d4e9

    Voici le code html de ce menu:
    Code html : 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
    <div id="accordion">
    <h3>Bijoux fantaisie</h3>
    <div>
    <p><a href="">Tous les produits It Bijoux</a></p>
    <p><a href="">Tous les produits bijoux fantaisie</a></p>
    <p><a href="">Nouveautés bijoux fantaisie</a></p>
    <p><a href="">Promotions bijoux fantaisie</a></p>
    <p><a href="">Boucles d'oreilles bijoux fantaisie</a></p>
    <p><a href="">Bagues bijoux fantaisie</a></p>
    <p><a href="">Bracelets bijoux fantaisie</a></p>
    <p><a href="">Colliers bijoux fantaisie</a></p>
    <p><a href="">Noir et blanc bijoux fantaisie</a></p>
    <p><a href="">Couleurs bijoux fantaisie</a></p>
    </div>
    <h3>Bijoux argent</h3>
    <div>
    <p><a href="">Tous les produits It bijoux</a></p>
    <p><a href="">Tous les produits bijoux argent</a></p>
    <p><a href="">Nouveautés bijoux argent</a></p>
    <p><a href="">Promotions bijoux argent</a></p>
    <p><a href="">Boucles d'oreilles bijoux argent</a></p>
    <p><a href="">Bagues bijoux argent</a></p>
    <p><a href="">Bracelets bijoux argent</a></p>
    <p><a href="">Colliers bijoux argent</a></p>
    <p><a href="">Noir et blanc bijoux argent</a></p>
    <p><a href="">Couleurs bijoux argent</a></p>
    </div>
    <h3>Accessoires mode</h3>
    <div>
    <p><a href="">Tous les produits It bijoux</a></p>
    <p><a href="">Tous les accessoires mode</a></p>
    <p><a href="">Nouveautés accessoires mode</a></p>
    <p><a href="">Promotions accessoires mode</a></p>
    <p><a href="">Boucles d'oreilles accessoires mode</a></p>
    <p><a href="">Bagues accessoires mode</a></p>
    <p><a href="">Bracelets accessoires mode</a></p>
    <p><a href="">Colliers accessoires mode</a></p>
    <p><a href="">Noir et blanc accessoires mode</a></p>
    <p><a href="">Couleurs accessoires mode</a></p>
    </div>
    <h3>Créateurs</h3>
    <div>
    <p><a href="">Tous les créateurs</a></p>
    </div>
    </div>

    J'ai donc créé dans ma base de données 2 tables: t_menu (pour les catégories) et t_sousmenu (pour les sous catégories).
    Photos ci-joint: http://hpics.li/643a436
    http://hpics.li/f442850

    Je parviens à afficher les catégories à l'aide de ce code mais je ne parviens pas à faire une seconde boucle dans la boucle pour qu'elle affiche les sous-catégories correspondantes aux catégories (si sousCategorieId = 1 > Bijoux fantaisie, si 2 > Bijoux argent, etc...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    echo '<div id="accordion">';
     
      $query = "SELECT *
                FROM t_menu
                WHERE afficheCategorie = 1
                ORDER BY ordreCategorie";
      $result = mysql_query($query);
     
      while ($row = mysql_fetch_array($result)){
        echo '<h3>'.$row['lienCategorie'].'</h3>
              <div></div>';  
      }
      echo'</div>';
    Pouvez-vous, s'il vous plait, m'éclairer car j'avoue que je suis perdue! Merci d'avance!

  2. #2
    Membre très actif Avatar de demenvil
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Avril 2009
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste développeur
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 195
    Par défaut
    Alors ce n'est pas trop compliqué
    Soit tu pars comme tu as fait là, une première requete donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $query = "SELECT *
                FROM t_menu
                WHERE afficheCategorie = 1
                ORDER BY ordreCategorie";
                ?>
    Puis dans ta première boucle : tu sélectionnes les sous cat de ton menu par son id.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <div id="accordion">
    <?php
    while ($row = mysql_fetch_array($result)):
    	$sousMenu = "select * from t_sousmenu where sousCategorieId = '".$row['categorieId']."' order by ordreSousCat ASC"; ?>
    		<h3><?=$row['lienCategorie'];?></h3>
    	<div>
    	<?php while($sousMenuData = mysql_fetch_array($sousMenu)):?>
    		<p><?=$sousMenuData['lienSousCat'];?></p>
    		<?php endwhile;?>
    	</div>';  
    <?php endwhile;?>
    </div> <!-- fin de div #accordion -->
    Voilà un truc dans le genre, bon ce n'est pas du code tester hein

Discussions similaires

  1. Afficher un message une seule fois dans une boucle infinie
    Par emulienfou dans le forum Langage
    Réponses: 3
    Dernier message: 24/02/2011, 14h12
  2. Réponses: 3
    Dernier message: 16/12/2010, 18h33
  3. Afficher des Divs dans une boucle
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/12/2009, 10h41
  4. [POO] afficher les mois de l'année dans une boucle
    Par une_tite_question dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 16/08/2008, 08h15
  5. Réponses: 11
    Dernier message: 18/02/2007, 23h20

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