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+DBM的同学录程序(3)
Oct 09 PHP
php 破解防盗链图片函数
Dec 09 PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
php+ajax实现无刷新分页
Nov 18 PHP
教你在header中隐藏php的版本信息
Aug 10 PHP
php中static 静态变量和普通变量的区别
Dec 01 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
用python代码做configure文件
2014/07/20 Python
Python素数检测的方法
2015/05/11 Python
Python的Django框架中的Context使用
2015/07/15 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
python要安装在哪个盘
2020/06/15 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
实习自我鉴定模板
2013/09/28 职场文书
军训感想500字
2014/02/20 职场文书
村党支部书记承诺书
2014/05/29 职场文书
物理学专业自荐信
2014/06/11 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
经理岗位职责
2015/02/02 职场文书
好好学习保证书
2015/02/26 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
工作态度怎么写
2015/06/25 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
MySQL GRANT用户授权的实现
2021/06/18 MySQL
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js