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多用户计数器代码
Mar 11 PHP
PHP版自动生成文章摘要
Jul 23 PHP
php目录管理函数小结
Sep 10 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
PHP 时间日期操作实战
Aug 26 PHP
学习php开源项目的源码指南
Dec 21 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
ThinkPHP表单令牌错误的相关解决方法分析
May 20 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 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
PHP安全配置详细说明
2011/09/26 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
Python类属性与实例属性用法分析
2015/05/09 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
python树莓派红外反射传感器
2019/01/21 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
使用python实现名片管理系统
2020/06/18 Python
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
神农溪导游词
2015/02/11 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL
dubbo服务整合zipkin详解
2021/07/26 Java/Android