Bonjour,
J'utilise le menu accordéon du tutoriel modifié pour pouvoir fonctionner avec une base de données, mais j'ai cependant un petit soucis que j'essaye de résoudre depuis quelques temps, en effet j'aimerais que les liens redirigent vers la page demandée quand ils n'ont pas de sous menus, au lieu d'essayer d'ouvrir un sous-menu.
Je vous copie mon code
En vous remerciant d'avance si vous avez une idée
J'utilise le menu accordéon du tutoriel modifié pour pouvoir fonctionner avec une base de données, mais j'ai cependant un petit soucis que j'essaye de résoudre depuis quelques temps, en effet j'aimerais que les liens redirigent vers la page demandée quand ils n'ont pas de sous menus, au lieu d'essayer d'ouvrir un sous-menu.
Je vous copie mon code
<script type="text/javascript">
$(document).ready( function () {
// On cache les sous-menus
// sauf celui qui porte la classe "open_at_load" :
$("ul.subMenu:not('.open_at_load')").hide();
// On selectionne tous les items de liste portant la classe "toggleSubMenu"
// et on remplace l'element span qu'ils contiennent par un lien :
$("li.toggleSubMenu span").each( function () {
// On stocke le contenu du span :
var TexteSpan = $(this).text();
$(this).replaceWith('<a href="" title="Afficher le sous-menu">' + TexteSpan + '</a>') ;
} ) ;
// On modifie l'evenement "click" sur les liens dans les items de liste
// qui portent la classe "toggleSubMenu" :
$("li.toggleSubMenu > a").click( function () {
// Si le sous-menu etait deja ouvert, on le referme :
if ($(this).next("ul.subMenu:visible").length != 0) {
$(this).next("ul.subMenu").slideUp("normal", function () { $(this).parent().removeClass("open") } );
}
// Si le sous-menu est cache, on ferme les autres et on l'affiche :
else {
$("ul.subMenu").slideUp("normal", function () { $(this).parent().removeClass("open") } );
$("ul.subMenu2").slideUp("normal", function () { $(this).parent().removeClass("open") } );
$(this).next("ul.subMenu").slideDown("normal", function () { $(this).parent().addClass("open") } );
}
// On empêche le navigateur de suivre le lien :
return false;
});
$("li.toggleSubMenu2 > a").click( function () {
// Si le sous-menu etait deja ouvert, on le referme :
if ($(this).next("ul.subMenu2:visible").length != 0) {
$(this).next("ul.subMenu2").slideUp("normal", function () { $(this).parent().removeClass("open") } );
}
// Si le sous-menu est cache, on ferme les autres et on l'affiche :
else {
$("ul.subMenu2").slideUp("normal", function () { $(this).parent().removeClass("open") } );
$(this).next("ul.subMenu2").slideDown("normal", function () { $(this).parent().addClass("open") } );
}
// On empêche le navigateur de suivre le lien :
return false;
});
} ) ;
</script>
</head>
<body>
<?php
include('connect_db.php');
?>
<ul class="navigation">
<?php
$sqlmenuprinc = "SELECT description, id, statut_contenu
FROM contenu
WHERE statut_contenu=1
AND id_categorie=1";
$resmenuprinc = $connexion->query($sqlmenuprinc);
$resmenuprinc->setFetchMode(PDO::FETCH_OBJ);
while($menuprinc=$resmenuprinc->fetch()){
$elemenu=$menuprinc->description;
$idelem=$menuprinc->id;
echo "<li style='position: static;' class='toggleSubMenu'><a href='redirection.php?page=$idelem'> $elemenu </a>";
echo "<ul style='display: none;' class='subMenu'>";
$sqlmenusec= "SELECT description, id, statut_contenu
FROM contenu
WHERE id_categorie=5
AND id_parent=$idelem
AND statut_contenu=1";
$resmenusec = $connexion->query($sqlmenusec);
$resmenusec->setFetchMode(PDO::FETCH_OBJ);
while($menusec=$resmenusec->fetch()){
$elemenu1=$menusec->description;
$idelem1=$menusec->id;
echo"<li style='position: static;' class='toggleSubMenu2'><a href='redirection.php?page=$idelem1'> $elemenu1 </a>";
echo"<ul style='display: none;' class='subMenu2'>";
$sqlsousmenu= "SELECT description, id, statut_contenu
FROM contenu
WHERE id_categorie=2
AND id_parent=$idelem1
AND statut_contenu=1";
$ressousmenu = $connexion->query($sqlsousmenu);
$ressousmenu->setFetchMode(PDO::FETCH_OBJ);
while($sousmenu=$ressousmenu->fetch()){
$elemenu2=$sousmenu->description;
$idelem2=$sousmenu->id;
echo "<li><a href='redirection.php?page=$idelem2'> $elemenu2 </a></li>";
}
echo "</ul>";
echo"</li>";
}
echo "</ul>";
echo"</li>";
}
?>
</ul>
</body>
</html>
En vous remerciant d'avance si vous avez une idée