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自动获取字符串编码函数mb_detect_encoding
May 31 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
php读取excel文件的简单实例
Aug 26 PHP
主流PHP框架的优缺点对比分析
Dec 25 PHP
php中instanceof 与 is_a()区别分析
Mar 03 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
PHP-FPM之Chroot执行环境详解
Aug 03 PHP
PHP 实现的将图片转换为TXT
Oct 21 PHP
php时间计算相关问题小结
May 09 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
PHP常量及变量区别原理详解
Aug 14 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实现一个简单url路由功能实例
2016/11/05 PHP
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
Js四则运算函数代码
2012/07/21 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
win7 x64系统中安装Scrapy的方法
2018/11/18 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
主题酒店策划书
2014/01/28 职场文书
《风筝》教学反思
2014/04/10 职场文书
内乡县衙导游词
2015/02/05 职场文书
2015新学期开学寄语
2015/02/26 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js