将数组缓存 因为是某种类目嘛,你总是要不停的各种读的,而它的变化又不大。
用AJAX 去读 和呈现需要的样子.数组自己爱怎么样拼接就怎么拼接.

解决方案 »

  1.   

    父节点ajax请求,出现子节点,这个你先只是列出父节点的列表,具体你还要控制下css样式。
      

  2.   


    <?php
    $arr = array(
        array(
            'sort_name' => '|--test0-1-1',
            'sort_id' => 1,
            'parentID' => 0
        ),
        array(
            'sort_name' => ' |--test1',
            'sort_id' => 2,
            'parentID' => 1
        ),
        array(
            'sort_name' => ' |--test2',
            'sort_id' => 3,
            'parentID' => 2
        ),
        array(
            'sort_name' => ' |--test2-son',
            'sort_id' => 6,
            'parentID' => 3
        ),
        array(
            'sort_name' => ' |--test2-son-2',
            'sort_id' => 7,
            'parentID' => 3
        ),
        array(
            'sort_name' => '|--one',
            'sort_id' => 1,
            'parentID' => 0
        ),
        array(
            'sort_name' => ' |--two',
            'sort_id' => 2,
            'parentID' => 6
        ),
        array(
            'sort_name' => ' |--three',
            'sort_id' => 3,
            'parentID' => 7
        ),
        array(
            'sort_name' => ' |--four1',
            'sort_id' => 6,
            'parentID' => 8
        ),
        array(
            'sort_name' => ' |--four2',
            'sort_id' => 7,
            'parentID' => 8
        ),
    );?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <title> New Document </title>
      <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
        <script type="text/javascript">
        function show(c){
            var pid = c.title;
            $('#list').find('p').each(function(){
                if(parseInt($(this).attr('pid'))==parseInt(pid)){
                 $(this).show();
                }
            })
        }
        </script>
     </head> <body>
     <div id="list">
    <?php
    echo '<pre>';
    for($i=0; $i<count($arr); $i++){
        $style = '';
        if($arr[$i]['parentID']!=0){
            $style = 'style="display:none"';
        }
        echo '<p '.$style.' onclick="show(this)" title="'.($i+1).'" pid="'.$arr[$i]['parentID'].'">'.$arr[$i]['sort_name'].'</p>';
    }
    echo '</pre>';
    ?>  
      </div>
     </body>
    </html>
      

  3.   


    极为感谢!表示最真诚的谢意。仍有最后一问:
    我要在最末端加上超链接,就是<a href="?id=其id值"></a>。能展开的节点,不加此标签。如何修改啊?
    谢谢了。如下:
      

  4.   


    极为感谢!表示最真诚的谢意。仍有最后一问:
    我要在最末端加上超链接,就是<a href="?id=其id值"></a>。能展开的节点,不加此标签。如何修改啊?
    谢谢了。如下:如果這樣,方便的話,你可以加多一個lastnode的屬性,是此屬性的才加link。
    array(
            'sort_name' => '|--test0-1-1',
            'sort_id' => 1,
            'parentID' => 0,
            'lastnode' => 0
        ),
      

  5.   

    推荐z-tree插件,完美解决你这些问题
      

  6.   


    Ztree
    http://www.ztree.me