layui排序功能
后台常用功能之排序!!!
一次只能排一个序!!!
基本样式
<tr>
<th>序号<span class="layui-table-sort layui-inline" id="id_sort"
lay-sort="{$id_sort}"><i class="layui-edge layui-table-sort-asc"
title="升序"></i><i class="layui-edge layui-table-sort-desc"
title="降序"></i>
</span>
</th>
<th>操作
</th>
<th>名称</th>
<th>显示</th>
<th>创建日期
<span class="layui-table-sort layui-inline" id="create_time_sort"
lay-sort="{$create_time_sort}"><i
class="layui-edge layui-table-sort-asc" title="升序"></i><i
class="layui-edge layui-table-sort-desc" title="降序"></i>
</span>
</th>
</tr>
点击事件
// 排序
$("#id_sort").on('click', function () {
let sort = $(this).attr('lay-sort');
sort = deal_sort_val(sort);
// 清理其他的排序值
$(".layui-table-sort").attr('lay-sort','');
$(this).attr('lay-sort',sort);
let search_str = get_search();
window.location.href = '__URL__/index?page=' + 1 + search_str;
});
$("#create_time_sort").on('click', function () {
let sort = $(this).attr('lay-sort');
sort = deal_sort_val(sort);
$(".layui-table-sort").attr('lay-sort','');
$(this).attr('lay-sort',sort);
let search_str = get_search();
window.location.href = '__URL__/index?page=' + 1 + search_str;
});
处理排序的逻辑
/**
* 处理排序
*/
function deal_sort_val(sort) {
if (!sort) {
sort = 'desc'; // 默认改为降序
} else {
if (sort == 'desc') {
sort = 'asc';
} else {
sort = 'desc';
}
}
return sort;
}
结合搜索的处理
function get_search() {
let start = $("#start").val();
let end = $("#end").val();
let search_str = '';
if (start) search_str += '&start=' + start;
if (end) search_str += '&end=' + end;
// sort
let id_sort = $('#id_sort').attr('lay-sort');
let create_time_sort = $('#create_time_sort').attr('lay-sort');
if (id_sort) search_str += '&id_sort=' + id_sort;
if (create_time_sort) search_str += '&create_time_sort=' + create_time_sort;
return search_str;
}
后端逻辑
// search
$where['deleted'] = 0;
if ($_GET['start'] && $_GET['end']) {
$where['create_time'] = ['between', [strtotime($_GET['start']), strtotime($_GET['end'].' 23:59')]];
$this->assign('start', $_GET['start']);
$this->assign('end', $_GET['end']);
}
if ($_GET['start'] && !$_GET['end']) {
$where['create_time'] = ['gt', strtotime($_GET['start'])];
$this->assign('start', $_GET['start']);
}
if (!$_GET['start'] && $_GET['end']) {
$where['create_time'] = ['lt', strtotime($_GET['end'].' 23:59')];
$this->assign('end', $_GET['end']);
}
// sort
$sort = 'id desc';
if ($_GET['id_sort']) {
$sort = 'id '.$_GET['id_sort'];
$this->assign('id_sort', $_GET['id_sort']);
}
if ($_GET['create_time_sort']) {
$sort = 'create_time '.$_GET['create_time_sort'];
$this->assign('create_time_sort', $_GET['create_time_sort']);
}
$article_type = M('article_type');
$result_list = $article_type->where($where)->limit($start . ',' . $step)->order($sort)->select();
后台常用功能有哪些呢?
搜索,排序,导入,导出,新增,修改,删除,查看详情,以及直接修改,温馨提示等等。
layui排序功能的更多相关文章
- 禁用datagridview中的自动排序功能
把datagridview中的自动排序功能禁用自己收集的两种方法,看看吧①DataGridView中的Columns属性里面可以设置.进入"EditColumns"窗口后,在相应的 ...
- ListBox实现拖拽排序功能
1.拖拽需要实现的事件包括: PreviewMouseLeftButtonDown LBoxSort_OnDrop 具体实现如下: private void LBoxSort_OnPreviewMou ...
- 简单实现Redis缓存中的排序功能
1.在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发 ...
- Java实现中文字符串的排序功能
package test; /** * * @Title 书的信息类 * @author LR * @version 1.0 * @since 2016-04-21 */ public class B ...
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能
MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能 由于MYSQL没有提供类似ORACLE中OVER()这样丰富的分析函数. 所以在MYSQ ...
- nls_sort和nlssort 排序功能介绍
nls_sort和nlssort 排序功能介绍 博客分类: oracle ALTER SESSION SET NLS_SORT=''; 排序影响整个会话 Oracle9i之前,中文是按照二进制编码 ...
- [WPF]ListView点击列头排序功能实现
[转] [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...
- MVC5 Entity Framework学习参加排序、筛选和排序功能
上一篇文章实现Student 基本的实体CRUD操作.本文将展示如何Students Index页添加排序.筛选和分页功能. 以下是排序完成时.经过筛选和分页功能截图,您可以在列标题点击排序. 1.为 ...
- YII关联字段并带搜索排序功能
1.简介 从接触yii框架到现在已经快有两个月了,但是自己对yii框架的了解程度并不是很深,并没有系统地去学习,仅仅只是在做项目的时候遇到不懂得知识才去翻手册. 在上一个项目中因为需要将关联的表的字段 ...
随机推荐
- 妹纸对网易严选的Bra是什么评价?
声明:这是一篇超级严肃的技术文章,请本着学习交流的态度阅读,谢谢! 一.网易商品评论爬取 1.评论分析 进入到网易严选官网,搜索“文胸”后,先随便点进一个商品. 在商品页面,打开 Chrome 的控制 ...
- vue Router——进阶篇
vue Router--基础篇 1.导航守卫 正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的 ...
- 关于git回退版本的一点心得
我由于开发中不小心在master分支上开发,忘记了切换分支,最后我直接在master分支上提交,push,在开发分支上merge了master分支. 然后,同事告诉我他的代码要准备上线了,然而我的代码 ...
- SQL中的视图(极客时间)
视图 视图也就是虚拟表, 本身不具备数据, 是SQL中的一个变红要概念. 如图 视图可以帮助我们使用表的一部分, 而不是所有的表, 另一方面可以针对不同的用户制定不同的查询视图. 创建, 更新与删除视 ...
- windows elasticsearch搭集群启动失败failed to send join request to master....
创建几份elasticsearch副本,修改各自config\elasticsearch.yml配置文件: 第一份: #允许elasticsearch跨域访问,使用elasticsearch-head ...
- MarkdownPad 2破解
MarkdownPad 2 是一款较不错的Markdown编辑器,可快速将文本转换为美观的HTML/XHTML的网页格式代码,且操作方便,用户可以通过键盘快捷键和工具栏按钮来使用或者移除Markdow ...
- 团队——Alpha2版本发布
这个作业属于哪个课程 课程链接 这个作业要求在哪里 作业要求的链接 团队名称 杨荣模杰和他的佶祥虎 这个作业的目标 发布并说明产品Alpha2版本 一.团队成员的学号姓名列表 学号 姓名 201731 ...
- Netty线程模型(五)
Netty支持单线程.主线程模型.主从多线程模型. 我们在创建线程组的时候,如果不传递参数,则默认构建的线程组线程是CPU核心数量. 一.单线程模型 在ServerBootstrap调用方法group ...
- BIO/NIO/AIO的区分(十四)
BIO:同步阻塞IO(平常说的IO指的是BIO)NIO:同步非阻塞IOAIO:异步非阻塞IO io操作分为两部分,发起io请求,和io数据读写. 阻塞.非阻塞主要是针对线程发起io请求后,是否立即返回 ...
- Excel-统计函数
1.Count系列函数 COUNT 数字个数----下面结果为 4 counta 非空的字数 ----下面为6 COUNTBLANK ------非空个数 ---- 下面为9 如何将字符串形式的数字 ...