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 在文件指定行插入数据的代码
May 08 PHP
PHP垃圾回收机制简单说明
Jul 22 PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
php文件上传你必须知道的几点
Oct 20 PHP
Yii2框架实现注册和登录教程
Sep 30 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
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
PHP一些有意思的小区别
2006/12/06 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
2011/11/10 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
JS之小练习代码
2008/10/12 Javascript
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
js轮播图代码分享
2016/07/14 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
Vue性能优化的方法
2020/07/30 Javascript
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
django实现分页的方法
2015/05/26 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
python实现文法左递归的消除方法
2020/05/22 Python
Python进行统计建模
2020/08/10 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
学校火灾防控方案
2014/06/09 职场文书
西安事变观后感
2015/06/12 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang