thinkphp调用二级栏目,volist多层嵌套

之前主要是想解决多层级分类,并且想每层的分类的标题都显示出来

于是找到一位大神前辈写的

原文链接:http://www.thinkphp.cn/code/947.html


主要怕文章找不到了,所以复制一遍

thinkphp调用二级栏目(二级分类) 函数+模板+控制器 完整代码送上
可能很多人在以thinkphp框架开发自己的cms 等程序中,
对于2级分类2级栏目提出了很多问题,因为我也在找这个问题,
所以今天完整的送上,别问我是谁,我叫小曾,可以加我QQ839024615嘻嘻

首先您得有数据表 必须有id字段 上级id字段(父级字段,也就是他爸爸是谁)
表结构如图所示:


id为自己 sid为上级id 也就是父级 他爸爸是谁 (px我设为排序,这个不在本话题)

sid说明 0表示顶级 他没有爸爸是祖宗了哈

控制器代码

  1. //取顶级分类控制器
  2.     public function index(){
  3.         $Data=M('Type');
  4.         $where['sid']=0; //先取他祖宗出来
  5.         $list=$Data->where($where)->order('px')->select();
  6.         $this->assign('list',$list);
  7.         $this->display();
  8.     }
函数调用二级 调用他儿子有几个 当然也可以取他儿子的儿了,这里我就讲到二级哈
函数代码放在/项目/Common/Common.php 根据你自己来配哈

  1. //取子分类
  2. function SidType($sid){
  3.     $Data=M('Type');
  4.     $where['sid']=$sid;
  5.     $list=$Data->where($where)->order('px')->select();
  6.     return $list;
  7. }
模板代码

  1. <table width="100%" border="0">
  2.   <tr class="th">
  3.     <th scope="col" width="10%">ID</th>
  4.     <th scope="col" width="10%">排序</th>
  5.     <th scope="col" style="text-align:left;" width="60%">名称</th>
  6.     <th scope="col" width="30%">操作</th>
  7.   </tr>
  8.   <!--顶级分类-->
  9.   <volist name="list" id="vo">
  10.   <tr class="tr">
  11.     <td align="center">{$vo.id}</td>
  12.     <td align="center"><input type="text" value="{$vo.px}" style="width:50px;" /></td>
  13.     <td align="left">┣ {$vo.name}</td>
  14.     <td align="center"><a href="{:U('Admin/updata','id='.$vo['id'])}">预览</a> <a href="{:U('Admin/updata','id='.$vo['id'])}">内容</a> <a href="{:U('Admin/updata','id='.$vo['id'])}">修改</a> <a url="{:U('Admin/del','id='.$vo['id'])}" href="#" class="f00 del">删除</a></td>
  15.   </tr>
  16.       <!--子分类-->
  17.       <volist name=":SidType($vo['id'])" id="vo">
  18.         <tr class="tr">
  19.           <td align="center">{$vo.id}</td>
  20.           <td align="center">   <input type="text" value="{$vo.px}" style="width:50px;" /></td>
  21.           <td align="left">┗━ {$vo.name}</td>
  22.           <td align="center"><a href="{:U('Admin/updata','id='.$vo['id'])}">预览</a> <a href="{:U('Admin/updata','id='.$vo['id'])}">内容</a> <a href="{:U('Admin/updata','id='.$vo['id'])}">修改</a> <a url="{:U('Admin/del','id='.$vo['id'])}" href="#" class="f00 del">删除</a></td>
  23.         </tr>
  24.       </volist>
  25.   </volist>
  26. </table>
上面是我自己的哈,有些不须要的可以去掉,你看懂意思就行,不要管其他又是代表什么,最终效果如下图所示


下面简写一下,取下级的下级的下级,,,,无限取

  1. //顶级
  2.  <volist name="list" id="vo">
  3.        //二级
  4.        <volist name=":SidType($vo['id'])" id="vo">
  5.              //三级
  6.                 <volist name=":SidType($vo['id'])" id="vo">
  7.                       //....一直无限取哈
  8.                  </volist>
  9.        </volist>
  10.  </volist>
下面是取到七级的截图,如果没有下级,后面会中断



猜你喜欢

转载自blog.csdn.net/weixin_39752673/article/details/78144412