Bonjour,

J'essaye de créer un menu avec 3 niveaux en utilisant la fonction récursive pour mon menu arborescent. J'ai donc mon tableau qui est comme ceci :

Code : 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 
Array
(
    [0] => Array
        (
            [id] => 1
            [parent] => 0
            [name] => Accueil
            [link] => #
            [position] => 1
            [active] => 1
        )
 
    [1] => Array
        (
            [id] => 2
            [parent] => 0
            [name] => Hebergement
            [link] => #
            [position] => 1
            [active] => 1
        )
 
    [2] => Array
        (
            [id] => 6
            [parent] => 0
            [name] => Script PHP
            [link] => #
            [position] => 1
            [active] => 1
        )
 
    [3] => Array
        (
            [id] => 3
            [parent] => 2
            [name] => Pack light
            [link] => #
            [position] => 1
            [active] => 1
        )
 
    [4] => Array
        (
            [id] => 4
            [parent] => 2
            [name] => Pack emeraude
            [link] => #
            [position] => 2
            [active] => 1
        )
 
    [5] => Array
        (
            [id] => 5
            [parent] => 2
            [name] => Pack rubis
            [link] => #
            [position] => 3
            [active] => 1
        )
 
    [6] => Array
        (
            [id] => 7
            [parent] => 6
            [name] => Radio shoutcast
            [link] => #
            [position] => 1
            [active] => 1
        )
 
    [7] => Array
        (
            [id] => 8
            [parent] => 7
            [name] => Support technique
            [link] => #
            [position] => 1
            [active] => 1
        )
 
    [8] => Array
        (
            [id] => 9
            [parent] => 8
            [name] => Acheter ce script
            [link] => #
            [position] => 1
            [active] => 1
        )
 
)
Voici ma fonction récursive :

Code : 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
34
35
36
37
 
<?php
public function afficher_menu($parent, $niveau, $array) 
{
	$html = "";
	$niveau_precedent = 0;
 
	foreach ($array AS $noeud) {
 
		if ($parent == $noeud['parent']) {
 
			if ($niveau == 0 && $niveau_precedent == 0) $html .= "<li class=\"dropdown\">\n";
 
			if ($niveau_precedent < $niveau) $html .= "<ul class=\"dropdown-menu\">";
 
			if ($noeud['parent'] != 0) $html .= "<li>";
 
			$html .= "<a class=\"dropdown-toggle\" href=\"" . $noeud['link'] . "\">" . $noeud['name'] . "</a>";
 
			if ($noeud['parent'] != 0) $html .= "</li>";
 
			$niveau_precedent = $niveau;
 
			$html .= $this->afficher_menu($noeud['id'], ($niveau + 3), $array);
 
			if ($niveau == 0 && $niveau_precedent == 0) $html .= "</li>\n";
		}
	}
 
	if (($niveau_precedent == $niveau) && ($niveau_precedent != 0)) $html .= "</ul>\n";
	else if ($niveau_precedent == $niveau) $html .= "\n";
	else $html .= "\n";
 
	return $html;
 
}
?>
Je fait donc appelle a ma fonction comme ceci : afficher_menu(0, 0, $menu);

Cela m'affiche bien mon menu (je le voit en code source) :

Code : 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
 
<li class="dropdown">
	<a class="dropdown-toggle" href="#">
	Accueil
	</a>
</li>
 
<li class="dropdown">
	<a class="dropdown-toggle" href="#">
	Hébergement
	</a>
	<ul class="dropdown-menu">
		<li><a href="#">Pack light</a></li>
		<li><a href="#">Pack emeraude</a></li>
		<li><a href="#">Pack rubis</a></li>
	</ul>
</li>
 
<li class="dropdown">
	<a class="dropdown-toggle" href="#">
	Script PHP
	</a>
	<ul class="dropdown-menu">
		<li><a href="#">Radio shoucast</a></li>
		<ul class="dropdown-menu">
			<li><a href="#">Support technique</a></li><!-- not visible -->
			<ul class="dropdown-menu">
				<li><a href="#">Acheter ce script</a></li><!-- not visible -->
			</ul>
		</ul>
	</ul>
</li>
Par contre visuellement sur mon site il y'a le niveau 2 et niveau 3 qui ne s'affiche pas j'ai mis une information sur le code ci dessus : not visible pour informer de ce qui ne se voyez pas visuellement.

J'aurai donc voulu savoir comment les afficher ? Y'a t'il un problème avec ma fonction récursive ?

Merci pour vos futures réponses.

Cordialement