Bonjour,

J'ai perdu mes notions de récursivité appris en cours (il faut dire que ça fait 20 ans).

Voici mon code. Il affiche un menu et ses sous-menus.
Pour le moment, affiche le menu (niveau 1) et un niveau de sous menu (niveau 2).
Je voudrais ajouter encore un sous-niveau (niveau 3) et pourquoi pas, autant qu'on voudrait (ça serait débile mais pourquoi pas).
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
    $Menu = new menu($GLOBALS['bdd']);
    foreach ($tab_droit as $UnDroit) {
        //echo "<br>Lecture avec les droits : $UnDroit<br>";
        $List_Menu = $Menu -> selectMenuByDroit($UnDroit, 0);
 
        foreach ($List_Menu as $Elm) {        
            $List_Ss_Menu = $Menu -> selectMenuByParent($Elm['idMenu']);
 
            if (count($List_Ss_Menu) > 0) {
                $i = 1;
                echo "<li class='has-sub'><a href='#'><span>" . $Elm['Lib_Page'] ."</span></a>";
                echo "<ul>";
                foreach ($List_Ss_Menu as $Ss_Elm) {
                    if ($i == count($List_Ss_Menu)) {
                        // dernier élément du sous-menu
                        echo "<li class='last'><a href='index.php?page=" . $Ss_Elm['page'] .
                             "'><span>" . $Ss_Elm['Lib_Page'] ."</span></a></li>";
                    }
                    else {
                        echo "
                           <li><a href='index.php?page=" . $Ss_Elm['page'] ."'><span>" . $Ss_Elm['Lib_Page'] ."</span></a></li>
                            ";
                    }
                    $i++;
                }
                echo "</ul></li>";
            }
            else { // Il n'y a pas de sous-menu
                echo "<li class='active'><a href='index.php?page=" . $Elm['page'] ."'><span>" . $Elm['Lib_Page'] ."</span></a></li>";
            }
        }
    }

je devrais pourvoir le faire avec de la récursivité, mais je pêche.

Merci pour votre aide.

Eddy