2012-07-26 35 views
0

我有一个递归树视图,它从数据库中提取所有信息,并希望了解如何使它可以折叠。 我试过使用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> 

任何帮助表示赞赏!

回答

2

我认为真的值得去看看这种仅用于可折叠树视图的css方法:http://www.thecssninja.com/css/css-tree-menu通过一些修改,它可以用于任何可能需要使用的树视图。

+0

CSS甚至没有超过我的想法,我会看看它感谢:) – Pidge 2012-07-26 09:23:56

1

在这里你可以找到一个工作可折叠的树视图,使用PHP和jQuery。

它的工作原理就像一个魅力(除了我需要做一个预塌陷treeView..but也许你并不需要的是,在这种情况下,这应该解决您的问题)

How to make pre-collapsed TreeView with php/javascript