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 相关文章推荐
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
php正则表达匹配中文问题分析小结
Mar 25 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
Yii分页用法实例详解
Dec 04 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
php中10个不同等级压缩优化图片操作示例
Nov 14 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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危险函数(disable_functions)
2012/02/23 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
2009/08/03 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
js 编写规范
2010/03/03 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
学习Node.js模块机制
2016/10/17 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
利用python 下载bilibili视频
2020/11/13 Python
巴西本土电商平台:Americanas
2020/06/21 全球购物
工程安全员岗位职责
2014/03/09 职场文书
运动会口号8字
2014/06/07 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
信访工作汇报材料
2014/10/27 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android
centos7安装mysql5.7经验记录
2022/05/02 Servers
服务器SVN搭建图文安装过程
2022/06/21 Servers