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 相关文章推荐
一个ubbcode的函数,速度很快.
Oct 09 PHP
用php获取远程图片并把它保存到本地的代码
Apr 07 PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 PHP
php中生成随机密码的自定义函数代码
Oct 21 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
Jan 19 PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 PHP
php网页病毒清除类
Dec 08 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
PHP使用Redis实现Session共享的实现示例
May 12 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 29 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类中的各种拦截器用法分析
2014/11/03 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
Python中的闭包总结
2014/09/18 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
python人民币小写转大写辅助工具
2018/06/20 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
python中如何使用虚拟环境
2020/10/14 Python
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
电台编导求职信
2014/05/06 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
银行实习推荐信
2015/03/27 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
小学体育课教学反思
2016/02/16 职场文书