本文实例为大家分享了thinkphp实现无限分类的详细代码,希望对大家学习无限分类有所启发。
数据库:test
数据表:(tp_category):
Common/conf/config.php
'DB_CONFIG2' => array( 'db_type' => 'mysql', 'db_user' => 'root', 'db_pwd' => '', 'db_host' => 'localhost', 'db_port' => '3306', 'db_name' => 'test', 'DB_PREFIX' => 'tp_', // 数据库表前缀 'DB_CHARSET'=> 'utf8', // 字符集 'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志 3.2.3新增 ),
Common/function.php 遍历函数loop
/* * 递归遍历 * @param $data array * @param $id int * return array * */ function recursion($data, $id=0) { $list = array(); foreach($data as $v) { if($v['pid'] == $id) { $v['son'] = recursion($data, $v['id']); if(empty($v['son'])) { unset($v['son']); } array_push($list, $v); } } return $list; }
Controller/IndexController.class.php
public function test() { $category = M('category', '', C('DB_CONFIG2'))->select(); $result = loop($category); var_dump($result); $this->assign('list', $result); $this->display(); }
在模板(View/Index/test.html)中输出(仅支持2级分类,如果想全部显示,建议先把数组转换成JSON格式,然后通过AJAX请求,JS生成)
<ul> <volist name="list" id="vo"> <li> {$vo.category} <notempty name="vo['children']"> <ul> <volist name="vo['children']" id="cate"> <li>{$cate.category}</li> </volist> </ul> </notempty> </li> </volist> </ul>
后续(ajax请求,递归显示所有分类):
方法 Controller/IndexController.class.php
public function test() { $this->display(); } public function resultCategory() { $category = M('category', '', C('DB_CONFIG2'))->select(); $result = loop($category); $this->ajaxReturn(array('data'=>$result,'status'=>'1','info'=>'获取列表成功')); }
模板View/Index/test.html
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>分类测试</title> <script src="/UploadFiles/2021-04-02/jquery.min.js">另一种无限级分类:
/** * 无限极分类 * @param [type] $cate [description] * @param integer $pid [description] * @param integer $level [description] * @param string $html [description] * @return [type] [description] */ function sortOut($cate,$pid=0,$level=0,$html='--'){ $tree = array(); foreach($cate as $v){ if($v['pid'] == $pid){ $v['level'] = $level + 1; $v['html'] = str_repeat($html, $level); $tree[] = $v; $tree = array_merge($tree, sortOut($cate,$v['id'],$level+1,$html)); } } return $tree; }JS递归(特殊):
这个函数相当于实现php的str_repeat函数
/* 字符串重复函数 */ if(!String.str_out_times) { String.prototype.str_out_times = function(l) { return new Array(l+1).join(this); } }// 定位到当前选择 function recursion(selector, data, j, pid) { var space = ' ┠ '; if(!data) return false; $.each(data, function(i, item) { var opt = $('<option value="'+item.id+'">'+space.str_out_times(j)+item.name+'</option>');selector.append(opt); if(item.son && (item.son).length>0) { recursion(selector, item.son, ++j); j=0; } }); // 当前是哪个分类 selector.find('option').each(function() { if($(this).val() == pid) { $(this).attr('selected', 'selected'); } }); }为什么j=0呢。因为执行顺序感觉与php不同,这里是从上到下加载。。
ajax请求数据:
$('.btn-edit').click(function() { var id = $(this).data('id'); $.post("{:U('Article/editArticle')}", {id: id}, function(res) { // 分类 $('[name="pid"]').html(''); recursion($('[name="pid"]'), res.sort, 0, res.pid); $('[name="id"]').val(res.id); $('[name="title"]').val(res.title); $('[name="summary"]').val(res.summary); $('#thumbnailImg').attr('src', "__UPLOAD__"+'/thumbnail/'+res.thumbnail); ue.setContent(res.content); $('#modal-edit').modal('show'); }); });以上就是thinkphp实现无限分类的方法,希望对大家的学习有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 群星《前途海量 电影原声专辑》[FLAC/分轨][227.78MB]
- 张信哲.1992-知道新曲与精丫巨石】【WAV+CUE】
- 王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】
- 景冈山.1996-我的眼里只有你【大地唱片】【WAV+CUE】
- 群星《八戒 电影原声带》[320K/MP3][188.97MB]
- 群星《我的阿勒泰 影视原声带》[320K/MP3][139.47MB]
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[320K/MP3][148.91MB]
- 刘雅丽.2001-丽花皇后·EMI精选王【EMI百代】【FLAC分轨】
- 齐秦.1994-黄金十年1981-1990CHINA.TOUR.LIVE精丫上华】【WAV+CUE】
- 群星.2008-本色·百代音乐人创作专辑【EMI百代】【WAV+CUE】
- 群星.2001-同步过冬AVCD【环球】【WAV+CUE】
- 群星.2020-同步过冬2020冀待晴空【环球】【WAV+CUE】
- 沈雁.1986-四季(2012梦田复刻版)【白云唱片】【WAV+CUE】
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[FLAC/分轨][257.88MB]
- 《国语老歌 怀旧篇 3CD》[WAV/分轨][1.6GB]