ThinkPHP采用<volist>实现三级循环代码实例
2015-01-24信息快讯网
这篇文章主要介绍了ThinkPHP采用<volist>实现三级循环代码实例,通过实例加深读者对<volist>标签用法的认识,需要的朋友可以参考下
本文以实例描述了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中__initialize()和类的构造函数__construct()用法分析
Sublime里直接运行PHP配置方法
ThinkPHP模板输出display用法分析
PHP中array_slice函数用法实例详解
php中ltrim()、rtrim()与trim()删除字符空格实例
ThinkPHP中I(),U(),$this->post()等函数用法
thinkphp使用literal防止模板标签被解析的方法
IIS下PHP的三种配置方式对比
php中ob_get_length缓冲与获取缓冲长度实例
php使用function_exists判断函数可用的方法
PHP循环遍历数组的3种方法list()、each()和while总结
php中filter_input函数用法分析
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
什么情况下可以不写PHP的闭合标签“?>”
php中使用array_filter()函数过滤空数组的实现代码
ThinkPHP表单自动提交验证实例教程
ThinkPHP字符串函数及常用函数汇总
PHP以mysqli方式连接类完整代码实例
Linux下手动编译安装PHP扩展的例子分享
mantis安装、配置和使用中的问题小结
Thinkphp的volist标签嵌套循环使用教程
linux下使用crontab实现定时PHP计划任务失败的原因分析
php操作redis中的hash和zset类型数据的方法和代码例子
30个php操作redis常用方法代码例子
PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
PHP内置过滤器FILTER使用实例
浅析application/x-www-form-urlencoded和multipart/form-data的区别
php定界符<<<使用技巧和实例
php警告Creating default object from empty value 问题的解决方法