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初学者头痛的十四个问题
Jul 12 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
php URL验证正则表达式
Jul 19 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
php数组去重的函数代码
Feb 03 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 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网站在线人数统计
2008/04/09 PHP
PHP的拦截器实例分析
2014/11/03 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
ThinkPHP模型详解
2015/07/27 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
JS的replace方法详细介绍
2012/11/09 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
全面理解闭包机制
2016/07/11 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
pandas 层次化索引的实现方法
2019/07/06 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
12月红领巾广播稿
2014/02/13 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
励志演讲稿300字
2014/08/21 职场文书
学校师德师风整改措施
2014/10/27 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
工作失职自我检讨书
2015/05/05 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
python Tkinter的简单入门教程
2021/04/11 Python