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
PHP5中使用PDO连接数据库的方法
Aug 01 PHP
PHP 事件机制(2)
Mar 23 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
Oct 29 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
php采集内容中带有图片地址的远程图片并保存的方法
Jan 03 PHP
PHP查看当前变量类型的方法
Jul 31 PHP
php7 安装yar 生成docker镜像
May 09 PHP
Laravel配置全局公共函数的方法步骤
May 09 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 file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
arguments对象
2006/11/20 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
Python对文件操作知识汇总
2016/05/15 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
python实现海螺图片的方法示例
2019/05/12 Python
python生成特定分布数的实例
2019/12/05 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
css3的transition属性详解
2014/12/15 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
坚定理想信念心得体会
2014/03/11 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python