当前位置: 首页 > 编程笔记 >

ThinkPHP采用实现三级循环代码实例

武成和
2023-03-14
本文向大家介绍ThinkPHP采用 实现三级循环代码实例,包括了ThinkPHP采用 实现三级循环代码实例的使用技巧和注意事项,需要的朋友参考一下

本文以实例描述了ThinkPHP采用<volist>标签实现三级循环代码,具体操作步骤如下:

1. 三级循环需要三维数组,实现代码如下:

function MakeTree($pid,$level) { 
 $map['pid'] = $pid; 
$map['level'] = $level; 
$result = $this->where($map)->order('rank ASC')->findall(); 
if($result){ 
 foreach ($result as $key => $value){ 
 $title = $value['alias']; 
 $list[$title]['id'] = $value['id']; 
 $list[$title]['pid'] = $value['pid']; 
 $list[$title]['alias']= $value['alias']; 
 $list[$title]['title'] = $value['title']; 
 $list[$title]['level'] = $value['level']; 
 $list[$title]['state'] = $value['state']; 
 $list[$title]['rank'] = $value['rank']; 
 if($value['level']<=3){ 
  $list[$title]['child'] = $this->_MakeSonTree($value['id']);
 } 
 } 
} 
return $list; 
} 

function _MakeSonTree($pid) { 
$map['pid'] = $pid; 
$result = $this->where($map)->order('rank ASC')->findall(); 
if($result){ 
 foreach ($result as $key => $value){ 
 $title = $value['alias']; 
 $list[$title]['id']= $value['id']; 
 $list[$title]['pid']= $value['pid']; 
 $list[$title]['alias']= $value['alias']; 
 $list[$title]['title'] = $value['title']; 
 $list[$title]['level'] = $value['level']; 
 $list[$title]['state'] = $value['state']; 
 $list[$title]['rank'] = $value['rank']; 
  if($this->haschild($value['id'])){  //先判断是否有第三级子类,最后的数组形如$result['child']['grandchild']; 
  $list[$title]['grandchild']=$this->_MakeSonTree($value['id']); 
  } 
 } 
} 
return $list; 
 } 

function haschild($id){ 
$result=D('LearningChannel')->where("pid=".$id)->find(); 
if($result){ 
 return true; 
 } 
 else return false; 
}

2.绑定volist标签:

 $result=D('Learning') ->MakeTree(0,1); 
 //dump($result);
 $this->assign('list',$result);

3.模板部分:

<select name="category" id="select" class="text mr5"> 
 <volist name="list" id="vo"> 
  <option name="cid" value="{$vo.id}" <eq name="vo.id" value="getid">selected</eq> >{$vo.alias}</option>  
 <volist name="vo['child']" id="child"> 
  <option name="cid" value="{$child.id}" <eq name="child.id" value="getid">selected</eq> >--{$child.alias}</option>  
  <volist name="child['grandchild']" id="grand"> 
  <option name="cid" value="{$grand.id}" <eq name="grand.id" value="getid">selected</eq> >---{$grand.alias}</option>  
  </volist> 
 </volist> 
 </volist> 
 </select>
 类似资料:
  • 本文向大家介绍ThinkPHP实现二级循环读取的方法,包括了ThinkPHP实现二级循环读取的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP实现二级循环读取的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

  • 本文向大家介绍jQuery实现三级菜单的代码,包括了jQuery实现三级菜单的代码的使用技巧和注意事项,需要的朋友参考一下 上周新接手一个网站建设的活儿,其中有需要要jquery代码实现三级菜单的需求,其实说难也不难,下面小编把代码分享给大家,供大家参考。 先给大家展示下效果图,如果大家感觉还不错的话,请参考实现代码。 HTML代码: js代码: css代码: 以上内容是小编给大家介绍的jQuer

  • 本文向大家介绍thinkphp标签实现bootsrtap轮播carousel实例代码,包括了thinkphp标签实现bootsrtap轮播carousel实例代码的使用技巧和注意事项,需要的朋友参考一下 由于轮播carousel第一个div需要设置active样式才能正常显示,上面的圆点也同样需要数字, 使用volist标签在循环的同时可以取得下标(foreach,for标签实现不了) 以上所述是

  • 本文向大家介绍省市区三级联动jquery实现代码,包括了省市区三级联动jquery实现代码的使用技巧和注意事项,需要的朋友参考一下 最近项目需要用到关于省市区三级联动下拉选择的功能,于是乎网上搜了一些做法,觉得有一些只是给出了小的案例,却很难找到详细的省、市、区的具体数据(其实,用baidu搜索就是这样啦),果断用google,搜出来的博文质量相当高,特此记录记录!!! 对于这个效果,其实我发现主

  • 本文向大家介绍采用ThinkPHP中F方法实现快速缓存实例,包括了采用ThinkPHP中F方法实现快速缓存实例的使用技巧和注意事项,需要的朋友参考一下 一般使用文件方式的缓存就能够满足要求,而thinkPHP还提供了一个专门用于文件方式的快速缓存方法F方法。 由于采用的是PHP返回方式,所以其效率较S方法较高。 F方法具有如下特点: 1.简单数据缓存; 2.文件形式保存; 3.采用PHP返回数据方

  • 本文向大家介绍ThinkPHP实现批量删除数据的代码实例,包括了ThinkPHP实现批量删除数据的代码实例的使用技巧和注意事项,需要的朋友参考一下 ThinkPHP实现批量删除数据原理很简单,只需在模板页面里面写上<input name='id[]' type='checkbox' value='{$vo.id}' class="noborder">这样传过来就是一个数组,action的删除函数d