递归菜单 加减号 展开 收回

来源:互联网 发布:库里篮下命中率数据 编辑:程序博客网 时间:2024/05/02 03:00
<meta charset='utf-8'>
<style>
    div{width:300px;margin-top:20px;margin-left:30px;text-align: left;}
    p{font-size:26px;}
    a{ text-decoration:none;}
    img{width:20px;}
</style>
<script src="j.js"></script>
<script>
    $(function(){
        $('img').click(function(){
            var ht = $(this).attr('src');
            var pid = $(this).attr('id');
            if(ht=='jia.png'){
                $('.'+pid).show().attr('s','s');
                $(this).attr('src','jian.png');
            }else{
                s(pid);
                $(this).attr('src','jia.png');
            }
        });
    });
    function s(pid){
        var l = $('.'+pid).size();
        for(var i=0;i<l;i++){
            var css = $('.'+pid).eq(i).css('display');
            if(css!='none'){
                var pid1 = $('.'+pid).eq(i).attr('pid');
                s(pid1);
                $('.'+pid).eq(i).hide().children('img').attr('src','jia.png');
            }
        }
    }
</script>
<?php
    echo '<pre>';
    $pdo= new PDO('mysql:dbname=webshop;host=127.0.0.1','root','root');
    $arr = $pdo->query('select id,p_id from shop_user',PDO::FETCH_ASSOC)->fetchAll();
    function all($array,$pid=0,$level=0){
        $arr = array();
        foreach($array as $v){
            if($v['p_id']==$pid){
                $v['level'] = $level;
                $v['html'] = str_repeat('   ',$level);
                $arr[] = $v;
                $arr = array_merge($arr,all($array,$v['id'],$level+1));
            }
        }
        return $arr;
    }
    echo '<div>';
    foreach(all($arr) as $key => $val){
        if($val['level']==0){
echo '<p><img src="jia.png" id="'.$val['id'].'" alt="">'.$val['html'].'<a href="'.$val['id'].'">'.$val['id'].'</a></p>';
        }else{
echo '<p style="display:none" class="'.$val['p_id'].'"  pid="'.$val['id'].'"><img src="jia.png" id="'.$val['id'].'">'.$val['html'].'<a href="'.$val['id'].'">'.$val['id'].'</a></p>';
        }
    }
    echo '</div>';
0 0