afficher des sous onglets avec un foreach
Bonjour à tous et à toutes.
J'aimerais faire un menu horizontal avec des foreach alimentés par une bdd.
C'est les sous onglets qui me pose problèmes car je ne sais pas comment faire pour que les balises <ul> et </ul> soit pris en compte qu’une seul fois.
Voici le contenu du array $onglet
Citation:
Array ( [accueil] => Accueil [page_contact] => Contact [rubrique_1] => Rubrique 1 [test] => test [test-1] => test 1 [test-2] => test 2 [fenetres] => Fenêtres )
Celui du array sous_onglet
Citation:
Array (
[accueil] => Array (
[0] => Array ( [nom_onglet] => Accueil [lien_onglet] => accueil [cor_lien_menu] => accueil [nom_s_ong] => Accueil bis [lien_s_ong] => accueil_bis )
[1] => Array ( [nom_onglet] => Accueil [lien_onglet] => accueil [cor_lien_menu] => accueil [nom_s_ong] => Accueil Bis 2 [lien_s_ong] => accueil_bis_2 ) )
[page_contact] => Array (
[0] => Array ( [nom_onglet] => Contact [lien_onglet] => page_contact [cor_lien_menu] => [nom_s_ong] => [lien_s_ong] => ) )
[rubrique_1] => Array (
[0] => Array ( [nom_onglet] => Rubrique 1 [lien_onglet] => rubrique_1 [cor_lien_menu] => rubrique_1 [nom_s_ong] => Sous onglet rubrique [lien_s_ong] => sous_onglet_rubrique ) )
[test] => Array (
[0] => Array ( [nom_onglet] => test [lien_onglet] => test [cor_lien_menu] => [nom_s_ong] => [lien_s_ong] => ) )
[test-1] => Array (
[0] => Array ( [nom_onglet] => test 1 [lien_onglet] => test-1 [cor_lien_menu] => [nom_s_ong] => [lien_s_ong] => ) )
[test-2] => Array (
[0] => Array ( [nom_onglet] => test 2 [lien_onglet] => test-2 [cor_lien_menu] => [nom_s_ong] => [lien_s_ong] => ) )
[fenetres] => Array ( [0] => Array ( [nom_onglet] => Fenêtres [lien_onglet] => fenetres [cor_lien_menu] => [nom_s_ong] => [lien_s_ong] => ) ) )
Voici mon code.
Code:
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
|
$req_menu_hor = $bdd->prepare("SELECT nom_onglet, lien_onglet, cor_lien_menu, nom_s_ong, lien_s_ong FROM menu
LEFT JOIN sous_menu ON menu.lien_onglet = sous_menu.cor_lien_menu WHERE auth_view <= :auth_view_level");
$req_menu_hor->bindValue('auth_view_level', $level, PDO::PARAM_INT);
$req_menu_hor->execute();
$onglet = array(); // déclare le tableau
$sous_onglet = array();
while ($res_menu_hor = $req_menu_hor->fetch())
{
$onglet[$res_menu_hor['lien_onglet']] = $res_menu_hor['nom_onglet']; // alimente le tableau
$sous_onglet[$res_menu_hor['lien_onglet']][] = $res_menu_hor;
}
$req_menu_hor->closeCursor();
//print_r ($onglet);
//print_r ($rubrique);
echo"<div id='cssmenu'><ul>";
$dernier_onglet = end($onglet);
foreach ($onglet as $key => $values)
{
echo '<li class="has-sub';if(urlencode($key) == $page) {echo' active';} if ($key === $dernier_onglet) {echo' last';}echo'">';
echo'<a href="'.ROOTPATH.'/index.php?page='.urlencode($key).'"><span>'.stripslashes($values).'';
echo'</span></a>';
echo'</li>';
}
echo"</ul></div>"; |
Merci de votre aide.