栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

thinkPHP实现的联动菜单功能详解

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

thinkPHP实现的联动菜单功能详解

本文实例讲述了thinkPHP实现的联动菜单功能。分享给大家供大家参考,具体如下:

联动菜单,首先给你看看前端是怎么写的:


  所有商品分类
   ">
    
      
  • $v['category_id'],'level'=>1))}" rel="external nofollow" >{$v.category_name}
    $v2['category_id'],'level'=>2))}" rel="external nofollow" >{$v2.category_name}
    $v3['category_id'],'level'=>3))}" rel="external nofollow" > {$v3.category_name}

看到没有,其实里面的一级菜单对应二级菜单都是在同一个li里面的,li里面的二级三级呢,都是放在dl的dt和dd标签里面;

然后现在我们看看取出来的category_menu,什么样的数据:

Array
(
 [0] => Array
  (
   [category_id] => 84
   [category_name] => 家装主材
   [parent_id] => 0
   [listorder] => 200
   [display] => 1
   [childs] => Array
    (
     [0] => Array
      (
[category_id] => 85
[category_name] => 厨卫
[parent_id] => 84
[listorder] => 200
[display] => 1
[childs] => Array
 (
  [0] => Array
   (
    [category_id] => 99
    [category_name] => 厨盆/水槽
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [1] => Array
   (
    [category_id] => 98
    [category_name] => 卫浴配件
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [2] => Array
   (
    [category_id] => 97
    [category_name] => 卫浴龙头
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [3] => Array
   (
    [category_id] => 96
    [category_name] => 龙头
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [4] => Array
   (
    [category_id] => 95
    [category_name] => 淋浴房
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [5] => Array
   (
    [category_id] => 94
    [category_name] => 智能坐便器
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [6] => Array
   (
    [category_id] => 93
    [category_name] => 浴室柜
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [7] => Array
   (
    [category_id] => 92
    [category_name] => 坐便器
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [8] => Array
   (
    [category_id] => 91
    [category_name] => 浴霸
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [9] => Array
   (
    [category_id] => 90
    [category_name] => 地漏
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [10] => Array
   (
    [category_id] => 89
    [category_name] => 坐便器盖板
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [11] => Array
   (
    [category_id] => 88
    [category_name] => 洗面盆
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [12] => Array
   (
    [category_id] => 87
    [category_name] => 角阀
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [13] => Array
   (
    [category_id] => 100
    [category_name] => 卫浴五金
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [14] => Array
   (
    [category_id] => 101
    [category_name] => 厨房挂件/配件
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [15] => Array
   (
    [category_id] => 86
    [category_name] => 淋浴花洒
    [parent_id] => 85
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
 )
      )
     [1] => Array
      (
[category_id] => 126
[category_name] => 墙纸
[parent_id] => 84
[listorder] => 200
[display] => 1
[childs] => Array
 (
  [0] => Array
   (
    [category_id] => 130
    [category_name] => 3D墙纸
    [parent_id] => 126
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [1] => Array
   (
    [category_id] => 129
    [category_name] => 纯纸墙纸
    [parent_id] => 126
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )
  [2] => Array
   (
    [category_id] => 128
    [category_name] => PVC墙纸
    [parent_id] => 126
    [listorder] => 200
    [display] => 1
    [childs] => Array
     (
     )
   )

然后,数据表是怎么样的数据呢:

Array
(
  [0] => Array
    (
      [category_id] => 211
      [category_name] => 鞋柜
      [parent_id] => 31
      [listorder] => 200
      [display] => 1
    )
  [1] => Array
    (
      [category_id] => 194
      [category_name] => 相框/照片墙
      [parent_id] => 189
      [listorder] => 200
      [display] => 1
    )
  [2] => Array
    (
      [category_id] => 193
      [category_name] => 帘艺隔断
      [parent_id] => 189
      [listorder] => 200
      [display] => 1
    )
  [3] => Array
    (
      [category_id] => 192
      [category_name] => 沙发垫套/椅垫
      [parent_id] => 189
      [listorder] => 200
      [display] => 1
    )
  [4] => Array
    (
      [category_id] => 191
      [category_name] => 地毯地垫
      [parent_id] => 189
      [listorder] => 200
      [display] => 1
    )
  [5] => Array
    (
      [category_id] => 190
      [category_name] => 桌布/罩件
      [parent_id] => 189
      [listorder] => 200
      [display] => 1
    )

数据表数据是酱紫的;

然后,你能写出那个处理数组的方法吗,给你原数据,然后你用迭代处理成你想要的数据,不用太多,6行代码左右,你OK?

代码拷贝多了,人也就变傻了,知不知道???

//把栏目分组,以多维数组形式
public function group_category($id = 0)
{
    $list=$this->where('display = 1')->order('listorder asc')->select();
    $tmp = array();
    foreach($list as $v){
      if($v['parent_id'] == $id){
 $v['childs'] = $this->group_category($v['category_id']);
 $tmp[] = $v;
      }
    }
    return $tmp;
}

为什么不把SQL语句放在外面作为参数传递进去函数groud_category函数呢?这样就不用老是查数据库啊。

无非也就是将父ID为0开始查询,然后对其子栏目的id在做为父ID进行查询,查询出属于其id的子栏目

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend frameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/41082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号