Mettre un attribut à une liste dynamique
J'avais besoins d'un script de création d'un arbre à partir des données venant d'une BD. Je suis tombé sur le script suivant (voir aussi en ligne) :
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
| query = "SELECT identiifantMenu, identifiantParent, nomMenu FROM table_menu ORDER BY val1 ASC";
$result = mysql_query($query);
$nombre_enreg=mysql_num_rows($result);
$categories = array();
while($row = mysql_fetch_array($result)) {
$categories[] = array(
'parent_id' => $row['identifiantParent'],
'categorie_id' => $row['identiifantMenu'],
'nom_categorie' => $row['nomMenu ']
);
}
function afficher_menu($parent, $niveau, $array) {
$html = "";
$niveau_precedent = 0;
if (!$niveau && !$niveau_precedent) $html .= "\n<ul>\n";
foreach ($array AS $noeud) {
if ($parent == $noeud['parent_id']) {
if ($niveau_precedent < $niveau) {$html .= "\n<ul>\n"; $ident=$noeud['parent_id'];}
$html .= "<li>" . $noeud['nom_categorie'];
$niveau_precedent = $niveau;
$html .= afficher_menu($noeud['categorie_id'], ($niveau + 1), $array);
}
}
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;
} |
Ce script m'affiche parfaitement l'arbre sous forme de <ul> et <li> mais j'ai un problème, c'est que lorsqu'on clique sur un menu, qu'il me renvoi l'identifiant du menu cliqué.
Puisque je ne dois pas afficher les identifiant, j'ai donc pensé que je peux à chaque fois je je crée un <li> ou un <ul>, ajouter l'attribut id qui sera égal à l'identifiant du menu <li id="identifiantMenu">. Mais selon ce script qui m'a été fourni, c'est vrai que je l'ai intégré et il marche, mais je ne le le comprend pas à 100% et je ne sais pas comment le faire, quelqu'un peut-il m'aider ?
Merci