贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
点击数:10842015-07-17 09:52:44 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技
TreeTable是一个能把无限分类展现为表格形式的PHP类库插件,分类的层级表示为表格的列,分类的行数表格分类的总数,单元格显示分类名称.
TreeTable通过对单元格的行合并和列合并实现了无限层级也能较好的展示层级架构.
1.构建ID/PID/NAME的数组,后期可通过数据库生成的动态数据,代码如下:
- array(
- * 1 => array('id'=>'1','parentid'=>0,'name'=>'一级栏目一'),
- * 2 => array('id'=>'2','parentid'=>0,'name'=>'一级栏目二'),
- * 3 => array('id'=>'3','parentid'=>1,'name'=>'二级栏目一'),
- * 4 => array('id'=>'4','parentid'=>1,'name'=>'二级栏目二'),
- * 5 => array('id'=>'5','parentid'=>2,'name'=>'二级栏目三'),
- * 6 => array('id'=>'6','parentid'=>3,'name'=>'三级栏目一'),
- * 7 => array('id'=>'7','parentid'=>3,'name'=>'三级栏目二')
- * )
2.导入TreeTable类库,代码如下:
- import('@.ORG.Util.TableTree'); //Thinkphp导入方法3. 生成TreeTable HTML代码
- $treeTable->init($treearr);
- echo $treeTable->get_treetable();
注意:get_treetable()只生产表体部门,<TALBE></TABLE>请自行构建.
php完整代码如下:
- <?php
- /**
- * File name: TreeTable.class.php
- * Author: run.gao 312854458@qq.com Date: 2012-07-24 23:22 GMT+8
- * Description: 通用的表格无限级分类
- * */
- /**
- * 表格展示无限分类是将无线分类已表格的形式表现出来,更好的能体现出分类的所属关系
- * 使用方法:
- * 1. 实例化分类
- * $treeTable = new TreeTable();
- * 2. 初始化分类,$treearr必须是一个多维数组且包含 id,parentid,name字段
- * $treeTable->init($treearr);
- * 3. 获取无限分类HTML代码
- * echo $treeTable->get_treetable();
- * */
- class TreeTable {
- /**
- * 生成树型结构所需要的2维数组
- * @var array
- */
- public $arr = array();
- /**
- * 表格列数
- * @var int
- */
- public $columns = 0;
- /**
- * 表格行数
- * @var int
- */
- public $rows = 0;
- /**
- * 初始化TreeTable数据
- * @param array 2维数组
- * array(
- * 1 => array('id'=>'1','parentid'=>0,'name'=>'一级栏目一'),
- * 2 => array('id'=>'2','parentid'=>0,'name'=>'一级栏目二'),
- * 3 => array('id'=>'3','parentid'=>1,'name'=>'二级栏目一'),
- * 4 => array('id'=>'4','parentid'=>1,'name'=>'二级栏目二'),
- * 5 => array('id'=>'5','parentid'=>2,'name'=>'二级栏目三'),
- * 6 => array('id'=>'6','parentid'=>3,'name'=>'三级栏目一'),
- * 7 => array('id'=>'7','parentid'=>3,'name'=>'三级栏目二')
- * )
- */
- public function init($arr=array()){
- if(!is_array($arr)) return false;
- foreach ($arr as $k=>$v) {
- $this->arr[$v['id']] = $v;
- }
- foreach ($this->arr as $k => $v){
- $this->arr[$k]['column'] = $this->get_level($v['id']); // Y轴位置
- $this->arr[$k]['arrchildid'] = $this->get_arrchildid($v['id']); // 所有子节点
- $this->arr[$k]['arrparentid'] = $this->get_arrparentid($v['id']); // 所有父节点
- $this->arr[$k]['child_bottom_num'] = $this->get_child_count($v['id']); // 所有底层元素节点
- }
- $this->columns = $this->get_columns(); // 总行数
- $this->rows = $this->get_rows(); // 总列数
- // 按照arrparentid