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 项目的方法
Jan 02 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
PHP删除特定数组内容并且重建数组索引的方法.
Mar 25 PHP
php基础学习之变量的使用
Jun 09 PHP
PHP Curl出现403错误的解决办法
May 29 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
php cli配置文件问题分析
Oct 15 PHP
php文件上传类的分享
Jul 06 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
thinkphp5实现微信扫码支付
Dec 23 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 blowfish加密解密算法
2016/07/02 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
JS实现打字游戏
2019/12/17 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
python实现词法分析器
2019/01/31 Python
python plotly画柱状图代码实例
2019/12/13 Python
python脚本和网页有何区别
2020/07/02 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
军训鉴定表自我鉴定
2014/02/13 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
财会专业大学生求职信
2014/09/26 职场文书
2014年实习生工作总结
2014/11/27 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
SpringBoot快速入门详解
2021/07/21 Java/Android
Python实现日志实时监测的示例详解
2022/04/06 Python
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS