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
IIS6的PHP最佳配置方法
Mar 19 PHP
基于asp+ajax和数据库驱动的二级联动菜单
May 06 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
php之可变变量的实例详解
Sep 12 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
Laravel 实现关系模型取出需要的字段
Oct 10 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 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
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
python的else子句使用指南
2016/02/27 Python
python pandas库中DataFrame对行和列的操作实例讲解
2018/06/09 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
python实现串口通信的示例代码
2020/02/10 Python
详解Python 最短匹配模式
2020/07/29 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
小学生家长评语集锦
2014/01/30 职场文书
旷工检讨书1000字
2015/01/01 职场文书
详解java如何集成swagger组件
2021/06/21 Java/Android
MySQL多表查询机制
2022/03/17 MySQL
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers