php 实现无限极分类

1:数据在列表页面的展示:

  php页面:

/*
    列表分类树
    $arr 数组
    $id  父类id
    $lev 级别
    $cid 分类表自增id
    */
function subtree($arr,$id=0,$lev=1,$cid='id') {
    static $subs = array();
    foreach ($arr as $v) {
        if ($v['pid'] == $id) {
            $v['level'] = $lev;
            $subs[] = $v;
            subtree($arr,$v[$cid],$lev+2);
        }
    }
    return $subs;
}
html页面:
<td>
    <i class="ace-icon fa fa-pencil-square-o" style="margin-left:{$val.level}em;margin-right: 5px;"></i>{$val.dic_key}
</td>

2:无限极分类的添加和修改:

php页面:

/*
获取全部分类并缩进
$parentid 父类is
$tab      级别
$chekedid 选中分类
$table    分类表名
*/
function folder($parentid = 0, $tab = 0,$chekedid,$table = "dic_data"){
    $ini['status'] = 1;
    $ini['pid'] = $parentid;
    $cateinfo = \think\Db::name($table)->where($ini)->select();
    $option .= "";
    foreach($cateinfo as $k=>$v){
        $selected = "";
        if($chekedid == $v['id']){
            $selected = "selected";
        }
        $option .="<option $selected value=".$v['id'].">".str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $tab).$v['dic_key']."</option>";
        $option .= folder($v["id"], $tab + 1,$chekedid,$table);
    }
    return $option;
}

html页面:

<div class="col-sm-9">
    <select class="form-control" style="width: 420px;" name="pid" id="pid">
        <option value='0'>≡请选择≡</option>
        {:folder(0,0,$disctarr['pid'],'dic_data')}
    </select>
</div>

猜你喜欢

转载自blog.csdn.net/weixin_38615720/article/details/82906460