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音乐采集(部分代码)
Feb 14 PHP
php邮件发送,php发送邮件的类
Mar 24 PHP
php daddslashes()和 saddslashes()有哪些区别分析
Oct 26 PHP
php并发对MYSQL造成压力的解决方法
Feb 21 PHP
php对数组排序代码分享
Feb 24 PHP
Win7 64位系统下PHP连接Oracle数据库
Aug 20 PHP
PHP的PDO操作简单示例
Mar 30 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 PHP
php简单实现多维数组排序的方法
Sep 30 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
php微信开发之关键词回复功能
Jun 13 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 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
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
python实现数据库跨服务器迁移
2018/04/12 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
flask应用部署到服务器的方法
2019/07/12 Python
对python中list的五种查找方法说明
2020/07/13 Python
python 实用工具状态机transitions
2020/11/21 Python
Python安装Bs4的多种方法
2020/11/28 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
新年主持词
2014/03/27 职场文书
辅导员评语
2014/05/04 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
厉害!这是Redis可视化工具最全的横向评测
2021/07/15 Redis
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
vue+echarts实现多条折线图
2022/03/21 Vue.js
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers