博主信息
博文 1
粉丝 0
评论 0
访问量 1435
相关推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
TP实现树状展示
点墨的博客
原创
1438人浏览过

表结构如下,父类和子类是存在一张表中的,然后需要在前台完成树状展示

需要完成的展示效果如下:

实现方式:

控制器代码:

public function goodsadd(){

         $catModel=D('Cat');

//数组¥arr装父类

          $arr=$catModel->where('parent_id=0 and cat_id<>0')->order('cat_id,parent_id asc')->select();

//数组$arr1 装 子类

          $arr1=$catModel->where("parent_id<>0")->order('cat_id asc')->select();

//新建数组 $arr0 ,将父类和子类根据父子关系装进去

        for($key=0;$key<count($arr);$key++){

            $arr0[]=array('cat_id'=>$arr[$key]['cat_id'],

                          'pcat_name'=>$arr[$key]['cat_name'],

                          'ccat_name'=>'',

                          'parent_id'  =>$arr[$key]['parent_id']);

    for ($k=0;$k<count($arr1);$k++){

        $pid=$arr1[$k]['parent_id'];

        if($arr[$key]['cat_id']==$pid)

        {

            $arr0[]=array('cat_id'=>$arr1[$k]['cat_id'],

                        'pcat_name'=>'',

                        'ccat_name'=>$arr1[$k]['cat_name'],

                        'parent_id'=>$arr1[$k]['parent_id']);

        }

    }

        }

         $this->assign('catlist',$arr0);

        $this->display();

    }

}

通过以上遍历arr0 的结构如下,这是一个二维数组

Array    

(    

[0] => Array    

(    

[cat_id] => 10    

[pcat_name] => 手机    

[ccat_name] =>    

[parent_id] => 0    

)    

[1] => Array    

(    

[cat_id] => 6    

[pcat_name] =>    

[ccat_name] => 华为mate2    

[parent_id] => 10    

)    

[2] => Array    

(    

[cat_id] => 14    

[pcat_name] =>    

[ccat_name] => 魅族手机    

[parent_id] => 10    

)    

[3] => Array    

(    

[cat_id] => 11    

[pcat_name] => 电脑    

[ccat_name] =>    

[parent_id] => 0    

)    

[4] => Array    

(    

[cat_id] => 15    

[pcat_name] =>    

[ccat_name] => 联想电脑    

[parent_id] => 11    

)    

[5] => Array    

(    

[cat_id] => 12    

[pcat_name] => 配件    

[ccat_name] =>    

[parent_id] => 0    

)    

[6] => Array    

(    

[cat_id] => 7    

[pcat_name] =>    

[ccat_name] => 蓝精灵充电器    

[parent_id] => 12    

)    

[7] => Array    

(    

[cat_id] => 8    

[pcat_name] =>    

[ccat_name] => 南孚电池    

[parent_id] => 12    

)    

[8] => Array    

(    

[cat_id] => 13    

[pcat_name] => 充值卡    

[ccat_name] =>    

[parent_id] => 0    

)    

[9] => Array    

(    

[cat_id] => 16    

[pcat_name] =>    

[ccat_name] => 电信充值卡    

[parent_id] => 13    

)    

)    

VIEW 里面下拉列表显示代码如下:

      <tr>

            <td class="label">商品分类:</td>

            <td><select name="cat_id">

            <option ></option> 

              <volist name="catlist" id='vo'>

              <if condition="$vo.parent_id eq 0">

  <!-- 如果是父类,则该项不能选择 -->

              <option value={$vo.cat_id} disabled >{$vo.pcat_name}</option> 

                <else/>

  <!-- 如果是子类,则该项缩进2个空格,展示层次-->

                 <option value={$vo.cat_id}>&nbsp;&nbsp;{$vo.ccat_name}</option>

                </if>

           </volist>

            </select>

             </td>

          </tr>


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学