Bonjour a tous,

j'ai déja exposé mon probleme sur le forum php mais ils n'ont pu m'aidé.

Je dispose d'une fonction PHP qui qui a partir d'une base de données crée une liste de catégories sous forme de liste de puces. Chaque ul et li sont crées en javascript et placés dans une div.

Lors de l'affichage de mes catégories principales, tout marche correctement, mais ma fonction est récursive (il y a des sous catégories) et la ça pose probleme.

En effet, mon affichage est de ce type:

categorie 1
categorie 2
categorie 3

sous-categorie 1 de la categorie 1
sous-categorie 2 de la categorie 1
sous-categorie 3 de la categorie 1

sous-categorie 1 de la categorie 2
sous-categorie 2 de la categorie 2

sous-categorie 1 de la categorie 3
sous-categorie 2 de la categorie 3
sous-categorie 3 de la categorie 3




au lieu de ceci:

categorie 1
sous-categorie 1 de la categorie 1
sous-categorie 2 de la categorie 1
sous-categorie 3 de la categorie 1

categorie 2
sous-categorie 1 de la categorie 2
sous-categorie 2 de la categorie 2

categorie 3
sous-categorie 1 de la categorie 3
sous-categorie 2 de la categorie 3
sous-categorie 3 de la categorie 3

voici mon code:

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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
$categparent=$_GET["categparent"];	
affichercateg($categparent);
 
 
//Fonction d'affichage des catégories
function affichercateg($categparent) {
 
 
	//Debut de liste
	echo "<div id='$categparent' class ='verdana2' style='background-color:#c0cad4;'></div>";
	?>
	<script type="text/javascript" language="javascript" charset="utf-8">
	// <![CDATA[
 	var new_ul_id<?php echo $categparent ?> =  '<?php echo $categparent ?>'; 
  	var ul_<?php echo $categparent ?> = document.createElement("ul");
  	var ul_id = document.createAttribute("id");
  	ul_id.nodeValue = new_ul_id<?php echo $categparent ?>;
  	ul_<?php echo $categparent ?>.setAttributeNode(ul_id);
   </script>
   <?php
  
        
        if ($categparent==0) {
                ?>
   	<script>
   		var new_ul_style =  'list-style-image:url(./img_pack/secteur-24.gif);cursor:pointer;'; 
  			var ul_style = document.createAttribute("style");
   		ul_style.nodeValue = new_ul_style;
   		ul_<?php echo $categparent ?>.setAttributeNode(ul_style);
 		</script>
 		<?php   
                
        } else {        
                
                ?>
		<script type="text/javascript" language="javascript" charset="utf-8">  	 	  	
  			var new_ul_class =  'invisible'; 
  			var ul_class = document.createAttribute("class");
  			ul_class.nodeValue = new_ul_class;
   		ul_<?php echo $categparent ?>.setAttributeNode(ul_class); 	
  	 		var new_ul_style =  'class:invisible;list-style-image:url(./img_pack/rubrique-24.gif);cursor:pointer;'; 
  			var ul_style = document.createAttribute("style");
  	 		ul_style.nodeValue = new_ul_style;
   		ul_<?php echo $categparent ?>.setAttributeNode(ul_style);
 		</script>
 		<?php
        }
 
        //Requete affichant les catégories de la catégorie categparent
        $quer = "SELECT id_rubrique, titre, id_parent FROM spip_rubriques WHERE id_parent=$categparent ORDER BY id_parent, id_rubrique,titre";
 
        $resul = spip_query($quer);
 
 
        //Lecture de la requete
        while ($row = spip_fetch_array($resul)) {
        
                $titre = typo($row['titre']);                                           //titre de la rubrique
                $id_rub=substr($titre,0,strpos($titre,"."));    //id titre de la rubrique
                $id_rubrique = $row['id_rubrique'];                             //id de la rubrique
                $long=strlen($id_rubrique);
                $id_parent=$row['id_parent'];                                           //id de la rubrique parente en cours
 
 
                
                //Puce affichant le titre de la rubrique
                if ($id_parent==$categparent) {
                
                        ?>
			<script type="text/javascript" language="javascript" charset="utf-8"> 
  			var li<?php echo $id_rubrique ?> = document.createElement("li");
  			li<?php echo $id_rubrique ?>.setAttribute("id", "<?php echo $categparent ?>_<?php echo $id_rubrique ?>");
  			li<?php echo $id_rubrique ?>.appendChild(document.createTextNode("<?php echo $titre ?>"));
  			ul_<?php echo $categparent ?>.appendChild(li<?php echo $id_rubrique ?>);	
  			</script>
			<?php
                        
                }
 
                /*
                //Requete affichant les articles de la catégorie categparent
                $quera = "SELECT id_article, titre, statut FROM spip_articles WHERE id_rubrique=$id_rubrique GROUP BY id_article ORDER BY id_article, titre";

                $resula = spip_query($quera);
                
                //Lecture de la requete
                while ($rowa = spip_fetch_array($resula)) {
                
                        $id_article=$rowa['id_article'];
                        $id_rub=$rowa['id_rubrique'];   
                        $titrea = typo($rowa['titre']);                         
                        ?>
			<script type="text/javascript" language="javascript" charset="utf-8"> 
  			var lia<?php echo $id_article ?> = document.createElement("li");
  			lia<?php echo $id_article ?>.setAttribute("id", "<?php echo $id_rub ?>_<?php echo $id_article ?>");
  			lia<?php echo $id_article ?>.appendChild(document.createTextNode("<?php echo $titrea ?>"));
  			ul_<?php echo $categparent ?>.appendChild(lia<?php echo $id_article ?>);	
  			</script>
			<?php
                }
                */
 
                affichercateg($id_rubrique);
        }
        ?>
	<script type="text/javascript" language="javascript" charset="utf-8">
	$('<?php echo $categparent ?>').appendChild(ul_<?php echo $categparent ?>);
	Sortable.create(new_ul_id<?php echo $categparent ?>, { onUpdate: function() {xhr=Sortable.serialize('<?php echo $categparent ?>');convertir(xhr, '<?php echo $categparent ?>'); } });
	</script>
 
 
<?php
}
?>
pouvez-vous m'aider?

merci d'avance