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>

どんな助けでも大歓迎です!

4

2 に答える 2

1

ここでは、phpとjQueryを使用して作成された折りたたみ可能なツリービューを見つけることができます。

それは魅力のように機能します(事前に折りたたまれたtreeViewを作成する必要があることを除いて..しかし、おそらくあなたはそれを必要としないでしょう、その場合、これはあなたの問題を解決するはずです)

php/javascriptで事前に折りたたまれたTreeViewを作成する方法

于 2013-03-11T22:03:01.570 に答える
1

折りたたみ可能なツリービューのこのcssのみのアプローチを確認することは本当に価値があると思います。http ://www.thecssninja.com/css/css-tree-menuいくつかの変更を加えるだけで、あらゆる種類のツリービューに使用できます。あなたが使いたいかもしれないこと。

于 2012-07-26T09:18:13.653 に答える