如何使递归树视图可折叠


How to make a recursive treeview collapsible

我有一个递归树视图,它从数据库中提取所有信息,我想了解如何使其可折叠。我尝试过使用Jquery和Javascript,但都没有效果。不确定是我的失误还是其他什么。

这是我的基本代码:

<body>
<?php
mysql_connect('localhost', 'root');
mysql_select_db('test');

 $qry="SELECT * FROM treeview_items";
 $result=mysql_query($qry);

 $arrayCategories = array();
 while($row = mysql_fetch_assoc($result)){ 
 $arrayCategories[$row['id']] = array("parent_id" => $row['parent_id'], "name" =>                       
 $row['title']);   
  }
//createTree($arrayCategories, 0);
 function createTree($array, $currentParent, $currLevel = 0, $prevLevel = -1) {
foreach ($array as $categoryId => $category) {
if ($currentParent == $category['parent_id']) {                       
    if ($currLevel > $prevLevel) echo " <ul> "; 
    if ($currLevel == $prevLevel) echo " </li> ";
    echo '<li id="'.$categoryId.'" onclick=child(this.id);>       
 <span>'.$category['name'].'</span>';
    if ($currLevel > $prevLevel) { $prevLevel = $currLevel; }
    $currLevel++; 
    createTree ($array, $categoryId, $currLevel, $prevLevel);
    $currLevel--;               
    }   
}
if ($currLevel == $prevLevel) echo " </li>  </ul> ";
}   
?>
<div id="content" class="general-style1">
<?php
 if(mysql_num_rows($result)!=0)
 {
?>
<ul>
<li id="0" class="root"><span>Categories</span>
<?php createTree($arrayCategories, 0); ?>
</li>
</ul>
<?php
}
?>
</div>
</body>
</html>

感谢您的帮助!

我认为非常值得一看这种用于可折叠树视图的纯css方法:http://www.thecssninja.com/css/css-tree-menu经过一些修改,它可以用于您可能想要使用的任何类型的树视图。

在这里,您可以找到一个使用php和jQuery创建的可折叠树视图。

它就像一个魅力(除了我需要制作一个预折叠的树视图……但也许你不需要,在这种情况下,这应该可以解决你的问题)

如何使用php/javascript 制作预折叠TreeView