它就是phptree。
git地址:https://git.oschina.net/jium/phptree.git
或从www.887551.com下载
最简单的例子:
<?php require('phptree.class.php');//原始数据, 从数据库读出$data = array(array('id'=>1,'name'=>'book','parent_id'=>0),array('id'=>2,'name'=>'music','parent_id'=>0),array('id'=>3,'name'=>'book1','parent_id'=>1),array('id'=>4,'name'=>'book2','parent_id'=>3));$r = phptree::maketree($data);echo json_encode($r);?>
输出:
[
{
“id”: 1,
“name”: “book”,
“parent_id”: 0,
“expanded”: fal, //不展开子节点
“children”: [
{
“id”: 3,
“name”: “book1”,
“parent_id”: 1,
“expanded”: fal,
“children”: [
{
“id”: 4,
“name”: “book2”,
“parent_id”: 3,
“leaf”: true
}
]
}
]
},
{
“id”: 2,
“name”: “music”,
“parent_id”: 0,
“leaf”: true
}
]
生成的数据就是树形结构了,可以结合extjs等前端框架来使用了。git中包含了一个extjs的demo,大家可以参考。
演示:
如果不需要使用前端框架,只是用htmlh3c路由器怎么样输出,可以使用下面的方法:
$r = phptree::maketreeforhtml($data);
得到一个一维数组,用 level 字段来标识分类的层次:
array( array( 'id'=>1, 'name'=>'用户管理', 'parent_id'=>0, 'level'=>0 //一级分类 ), array( 'id'=>1, 'name'=>'用户列表', 'parent_id'=>1, 'level'=>1 //二级分类 ) ....);
输出为lect标签:
echo '<h1>phptree树形结构</h1>';echo '<lect style="width:300px;">';foreach($r as $item){echo '<option>';//根据所在的层次缩进echo str_repeat('......',$item['level']);echo $item['name'];echo '</option>';}echo '</lect>';
演示:
git中包含了一个输出html的demo,大家可以参考。
关于数据库的设计,只需要保证包含 id 和 parent_id 字段即可,其他字段可以自行添加,不会影响数据生成。parent_id是父级id,如果是一级分类,就设为 0 。当然,字段也是可以配置的。请继续往下看,我将介绍一些进阶的使用方法。
展开子节点:
phptree::maketree( $data, array( 'expanded' => true));
输出的数据为:
[
{
id:1,
name:’book1′,
expanded:true,//展开子节点
children:[
…
]红色诗歌朗诵大全
}
]
自定义主键和父键:
//数据库读出$data = array( array( 'order_id'=>1, //主键 'name'=>'book1', 'pid'=>0, //父键 ... ));phptree::m烤的成语aketree( $data, array( 'primary_key' => 'order_id', 'parent_key' => 'pid'));
输出的数据为:
[
{
order_id:1,
name:’book1′,
p街头篮球大前锋技能id:0,
…
}
]
maketreeforhtml 方法也支持配置主键和父键。
还有其他字段也可以自定义,但下面这些参数仅支持 maketree 方法:
$r = phptree::maketree($data, array( 'expanded_key' => 'expanded', 'children_key' => 'children', 'leaf_key' => 'leaf'));
默认,这些字段的配置都是以extjs为参考四级各部分分值的,如果你使用ztree框架的话,这些字段就需要重新配置了。
ztree 是一款强大的国产树形框架,它还支持 简单json格式,是一维数据格式,实际上就不需要用到phptree了。当然,phptree输出的数据层次感清晰,ztree也是支持的。
本文发布于:2023-04-06 17:51:06,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/7f28f01cc50e64950f234af1da654c9e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHPTree——php快速生成无限级分类.doc
本文 PDF 下载地址:PHPTree——php快速生成无限级分类.pdf
留言与评论(共有 0 条评论) |