您的位置:首页 > 编程语言 > PHP开发

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

2017-09-30 17:29 218 查看
之前主要是想解决多层级分类,并且想每层的分类的标题都显示出来
于是找到一位大神前辈写的
原文链接:http://www.thinkphp.cn/code/947.html

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

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



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

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

控制器代码

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

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

<table width="100%" border="0">
  <tr class="th">
    <th scope="col" width="10%">ID</th>
    <th scope="col" width="10%">排序</th>
    <th scope="col" style="text-align:left;" width="60%">名称</th>
    <th scope="col" width="30%">操作</th>
  </tr>
  <!--顶级分类-->
  <volist name="list" id="vo">
  <tr class="tr">
    <td align="center">{$vo.id}</td>
    <td align="center"><input type="text" value="{$vo.px}" style="width:50px;" /></td>
    <td align="left">┣ {$vo.name}</td>
    <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>
  </tr>
      <!--子分类-->
      <volist name=":SidType($vo['id'])" id="vo">
        <tr class="tr">
          <td align="center">{$vo.id}</td>
          <td align="center">   <input type="text" value="{$vo.px}" style="width:50px;" /></td>
          <td align="left">┗━ {$vo.name}</td>
          <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>
        </tr>
      </volist>
  </volist>
</table>
上面是我自己的哈,有些不须要的可以去掉,你看懂意思就行,不要管其他又是代表什么,最终效果如下图所示



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

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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: