thinkphp框架无限级栏目的排序功能实现方法示例


Posted in PHP onMarch 29, 2020

本文实例讲述了thinkphp框架无限级栏目的排序功能实现方法。分享给大家供大家参考,具体如下:

题目中我们并没有说明是tp5的无限级排序还是tp3的无限级排序就是为了让小新手们明白,这些功能的实现跟你使用的框架是没有关系的,不管你是tp5还是tp3还是laravel还是yii框架都没有关系,我们强调的是思路,是解决问题的方法,演示的时候因为我在用tp3所以无所谓了。

无限级栏目的排序非常简单,这次以博文的方式分享给大家解决的思路。

上图:

thinkphp框架无限级栏目的排序功能实现方法示例

上图是我们实现的无限级分类,我们要注意两个字段,id和排序sort字段,目前sort字段的值都是50,是默认值。接着为大家截图数据表结构

thinkphp框架无限级栏目的排序功能实现方法示例

上图sort用来实现排序pid用来实现无限级分类

实现无限级分类的关键是我们对排序字段的写法,我们把整块代码拿到,但是用到的只有一行:

<form method="post" action="">
<table class="table table-bordered table-hover">
<thead class="">
<tr>
<th width="6%" class="text-center">ID</th>
<th width="6%" class="text-center">pid</th>
<th width="8%" class="text-center">排序</th>
<th>栏目名称</th>
<th width="16%" class="text-center">操作</th>
</tr>
</thead>
<tbody>
<volist name="cateRes" id="cate">
<tr>
<td align="center">{$cate.id}</td>
<td align="center">{$cate.pid}</td>
<td align="center">
<input type="text" name="sort[{$cate.id}]" value="{$cate.sort}" /></td>
<td><?php echo str_repeat('-', $cate['level']*8);?>{$cate.cate_name}</td>
<td align="center">
<a href="" class=" rel="external nofollow" btn btn-primary btn-sm shiny">
<i class="fa fa-edit"></i> 编辑
</a>
<a href="#" rel="external nofollow" onClick="warning('确实要删除吗', ”)" class="btn btn-danger btn-sm shiny">
<i class="fa fa-trash-o"></i> 删除
</a>
</td>
</tr>
</volist>
<tr>
<td colspan="4">
<button type="button" tooltip="排序" style="margin-left:225px; width:50px;" class="btn btn-sm btn-azure btn-addon">排序</button>
</td>
</tr>
</tbody>
</table>
</form>

上面的代码我们可以看出整个table是用form包裹的,因为我们要提交排序字段,所以需要表单。

我们实现无限极栏目排序的核心代码:

<input type="text" name="sort[{$cate.id}]" value="{$cate.sort}" />

就是这一句,实际上我们是拼装了一个sort[]数组,整个数组的每个元素的键是当前栏目的id而值是当前栏目的排序的值,这样我们一旦提交数组就可以根据id修改sort了

完整代码:

public function lst(){
$cate=D('Cate');
if(IS_POST){//排序
$data=I('sort');
foreach ($data as $k => $v) {
$cate->where(array('id'=>$k))->save(['sort'=>$v]);
}
return;
}
$cateRes=$cate->cateTree();//无限级分类树
$this->assign([
'cateRes'=>$cateRes,
]);
$this->display('list');
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
php cookie使用方法学习笔记分享
Nov 07 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
分享php多功能图片处理类
May 15 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
php查看一个变量的占用内存的实例代码
Mar 29 #PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 #PHP
PHP中类与对象功能、用法实例解读
Mar 27 #PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 #PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 #PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 #PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 #PHP
You might like
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
制作部班长职位说明书
2014/02/26 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
初级职称评定工作总结
2015/08/13 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
vue递归实现树形组件
2022/07/15 Vue.js
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技