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 Undefined index和Undefined variable的解决方法
Mar 27 PHP
php cookie的操作实现代码(登录)
Dec 29 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
php 在windows下配置虚拟目录的方法介绍
Jun 26 PHP
php获取twitter最新消息的方法
Apr 14 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
深入php内核之php in array
Nov 10 PHP
PHP中SQL查询语句的id=%d解释(推荐)
Dec 10 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
Feb 12 PHP
php实现JWT验证的实例教程
Nov 26 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 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
用Python制作音乐海报
2021/01/26 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
英国在线花园中心:You Garden
2018/06/03 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
校长就职演讲稿
2014/01/06 职场文书
党的群众路线教育实践活动心得体会
2014/03/03 职场文书
工伤事故证明
2014/10/20 职场文书
采购内勤岗位职责
2015/04/13 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android