Treeview Javascript PHP / Affichage par défault
Bonjour,
J'ai un treeview avec des menus cachés qui marche très bien.
Le problème est que quand j'arrive sur la page tout le menu est déployé alors que je souhaiterais ne voir que le 1er niveau par défault.
Une idée?
Merci,
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
function afficher_menu($parent, $niveau, $array) {
$i=0;
$html = "";
$niveau_precedent = 0;
if ($niveau%2 == 0)
$fa = "fa fa-caret-right";
else
$fa = "fa fa-long-arrow-right";
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if (!$niveau && !$niveau_precedent) $html .= "\n<ul>\n";
foreach ($array as $noeud) {
$idMenu = $noeud['id'];
if ($parent == $noeud['idParent']) {
if ($niveau_precedent < $niveau) $html .= "\n<ul style=\"display:block;\">\n";
$html .= "<li>\n"
. "<a onclick=\"javascript: showMenu(document.getElementById('menu$i'));\" style=\"cursor:pointer;\"><span class=\"$fa\"></span>"
. " " . $noeud['libelle']
. " " . $noeud['id']
. "-" . $noeud['idParent'] . "</a>";
$niveau_precedent = $niveau;
$html .= "<span id=\"menu$i\">" . afficher_menu($noeud['id'], ($niveau + 1), $array) . "</span>";
}
$i++;
}
if (($niveau_precedent == $niveau) && ($niveau_precedent != 0)) $html .= "</ul>\n</li>\n";
else if ($niveau_precedent == $niveau) $html .= "</ul>\n";
else $html .= "</li>\n";
return $html;
}
?>
<script type="text/javascript">
function showMenu(menu) {
if (menu.style.display == 'none') menu.style.display = 'block';
else menu.style.display = 'none';
}
</script> |