Affichage d'un sous menu dynamique
Posté : 25 nov. 2013, 19:27
Bonjour à tous,
Pour les besoin d'une formation, j'ai réalisé un site en MVC.
Je suis en train d'essayer d'améliorer ce site, afin de bosser un peu mes compétences, et je commence à sécher en ce qui concerne l'affichage de mon sous menu...
Voici ce que j'ai réalisé:
Par contre, si je mets ce code:
Ma requête sql est donc bonne, et je sais que c'est au niveau de mes foreach qu'il y a un soucis.
Mais je n'arrive pas à solutionner cela, et indiquer que lorsque id_posts = 3, il faut afficher le sous menu...
Voilà, j'espère avoir été claire dans mes explications, je débute en POO et avec ce soucis, je remarque que j'ai sans doute "louper" quelques trucs...
Une aide et/ou des sources pour m'aider à comprendre sont les bienvenus.
D'avance merci à vous!
Pour les besoin d'une formation, j'ai réalisé un site en MVC.
Je suis en train d'essayer d'améliorer ce site, afin de bosser un peu mes compétences, et je commence à sécher en ce qui concerne l'affichage de mon sous menu...
Voici ce que j'ai réalisé:
- Au niveau de ma base de données, j'ai ajouté un champ id_post, qui est en clé étrangère et qui référence le champ id de la table posts.
- Ainsi, les élément qui correspondent bien au menu ont un id_posts null, et les élément correspondant au sous menu ont un id_posts valant 3, liant donc à l'id 3 de ma table.
- Ensuite, dans mon layout par défaut, actuellement j'ai:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<?php $pagesMenu = $this->request('Pages','getMenu'); ?>
<?php foreach($pagesMenu as $p): ?>
<?php $pagesMenu = $this->request('Pages','getSubMenu'); ?>
<?php foreach($pagesMenu as $p): ?>
<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 endforeach; ?>
<?php endforeach; ?>
</ul>
</div>
Malheureusement, actuellement, cela affiche uniquement les éléments de mon sous-menu, et ils s'affichent plusieurs fois...Par contre, si je mets ce code:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<!-- MENU -->
<?php $pagesMenu = $this->request('Pages','getMenu'); ?>
<?php foreach($pagesMenu as $p): ?>
<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 endforeach; ?>
<!-- SOUS_MENU -->
<?php $pagesMenu = $this->request('Pages','getSubMenu'); ?>
<?php foreach($pagesMenu as $p): ?>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="<?php echo Router::url('pages/view/id:'.$p->id.'/slug:'.$p->slug); ?>" title="<?php echo $p->name; ?>"><?php echo $p->name; ?></a>
<ul class="dropdown-menu">
<li><a href="<?php echo Router::url('pages/view/id:'.$p->id.'/slug:'.$p->slug); ?>"><?php echo $p->name; ?></a></li>
<li class="divider"></li>
</ul>
</li>
<?php endforeach; ?>
</ul>
</div><!--/.nav-collapse -->
Les éléments de mon menu s'affichent bien, puis les éléments du sous-menu s'affichent, à la suite.Ma requête sql est donc bonne, et je sais que c'est au niveau de mes foreach qu'il y a un soucis.
Mais je n'arrive pas à solutionner cela, et indiquer que lorsque id_posts = 3, il faut afficher le sous menu...
Voilà, j'espère avoir été claire dans mes explications, je débute en POO et avec ce soucis, je remarque que j'ai sans doute "louper" quelques trucs...
Une aide et/ou des sources pour m'aider à comprendre sont les bienvenus.
D'avance merci à vous!