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 相关文章推荐
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
隐性调用php程序的方法
Mar 09 PHP
PHP通用检测函数集合
Feb 08 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
基于PHP静态类的原罪详解
May 06 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
php无限级评论嵌套实现代码
Apr 18 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 PHP
PHP实现简单的协程任务调度demo示例
Feb 01 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
php4的session功能评述(一)
2006/10/09 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
python绘制直方图和密度图的实例
2019/07/08 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python实现滑雪者小游戏
2020/02/22 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
python 追踪except信息方式
2020/04/25 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
关于毕业的中学校园广播稿
2014/01/26 职场文书
好学生评语大全
2014/05/05 职场文书
借名购房协议书范本
2014/10/06 职场文书
给客户的检讨书
2014/12/21 职场文书
学校百日安全活动总结
2015/05/07 职场文书
李强感恩观后感
2015/06/17 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python