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 相关文章推荐
人大复印资料处理程序_补充篇
Oct 09 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
前端必学之PHP语法基础
Jan 01 PHP
crontab无法执行php的解决方法
Jan 25 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
Smarty模板语法详解
Jul 20 PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 09 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 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
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
浅谈js中的this问题
2017/08/31 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
Python实现的多线程端口扫描工具分享
2015/01/21 Python
python学生信息管理系统(初级版)
2018/10/17 Python
使用python3构建文件传输的方法
2019/02/13 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
python SVD压缩图像的实现代码
2019/11/05 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
Python 从attribute到property详解
2020/03/05 Python
Python socket服务常用操作代码实例
2020/06/22 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
毕业自我鉴定书
2014/03/24 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js