后台常用功能之排序!!!

一次只能排一个序!!!

基本样式

<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排序功能的更多相关文章

  1. 禁用datagridview中的自动排序功能

    把datagridview中的自动排序功能禁用自己收集的两种方法,看看吧①DataGridView中的Columns属性里面可以设置.进入"EditColumns"窗口后,在相应的 ...

  2. ListBox实现拖拽排序功能

    1.拖拽需要实现的事件包括: PreviewMouseLeftButtonDown LBoxSort_OnDrop 具体实现如下: private void LBoxSort_OnPreviewMou ...

  3. 简单实现Redis缓存中的排序功能

    1.在实现缓存排序功能之前,必须先明白这一功能的合理性.不妨思考一下,既然可以在数据库中排序,为什么还要把排序功能放在缓存中实现呢?这里简单总结了两个原因:首先,排序会增加数据库的负载,难以支撑高并发 ...

  4. Java实现中文字符串的排序功能

    package test; /** * * @Title 书的信息类 * @author LR * @version 1.0 * @since 2016-04-21 */ public class B ...

  5. MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能

    MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能 由于MYSQL没有提供类似ORACLE中OVER()这样丰富的分析函数. 所以在MYSQ ...

  6. nls_sort和nlssort 排序功能介绍

    nls_sort和nlssort 排序功能介绍 博客分类: oracle   ALTER SESSION SET NLS_SORT=''; 排序影响整个会话 Oracle9i之前,中文是按照二进制编码 ...

  7. [WPF]ListView点击列头排序功能实现

    [转]   [WPF]ListView点击列头排序功能实现 这是一个非常常见的功能,要求也很简单,在Column Header上显示一个小三角表示表示现在是在哪个Header上的正序还是倒序就可以了. ...

  8. MVC5 Entity Framework学习参加排序、筛选和排序功能

    上一篇文章实现Student 基本的实体CRUD操作.本文将展示如何Students Index页添加排序.筛选和分页功能. 以下是排序完成时.经过筛选和分页功能截图,您可以在列标题点击排序. 1.为 ...

  9. YII关联字段并带搜索排序功能

    1.简介 从接触yii框架到现在已经快有两个月了,但是自己对yii框架的了解程度并不是很深,并没有系统地去学习,仅仅只是在做项目的时候遇到不懂得知识才去翻手册. 在上一个项目中因为需要将关联的表的字段 ...

随机推荐

  1. 链表逆序,java实现

    package com.cskaoyan.linkedlist; //反转数组 public class LinkedListDemo2 { public static Node reverse(No ...

  2. Java实现贪吃蛇游戏(含账号注册登录,排行榜功能)

    这是我第一次工程实践的作业,选题很多,但我只对其中的游戏开发感兴趣,可游戏就两三个类型,最终还是选择了贪吃蛇.其实就贪吃蛇本身的代码实现还算是比较简单的,可是实践要求代码行达到一定数量,所以我就额外给 ...

  3. 【设计模式】Factory

    前言 这篇博客将包括两种设计模式,一种是工厂模式,一种是抽象工厂模式.不管是哪一种设计模式,本质上在解决的问题是对象创建的问题.工厂,可以是简简单单的一个函数,也可以是一个有具体实现的类,也可以是一个 ...

  4. spring boot的gradle整合日志

    1.引入包configurations { providedRuntime // remove default logger all*.exclude group: 'org.springframew ...

  5. 9.为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗?

    作者:中华石杉 面试题 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗? 面试官心理分析 从这个问题开始就进行分布式系统环节了,现在出去面试分布式都成标配了,没有哪个公司不问问 ...

  6. Linux Tools 之 iostat 工具总结

    iostat是Linux中被用来监控系统的I/O设备活动情况的工具,是input/output statistics的缩写.它可以生成三种类型的报告: CPU利用率报告 设备利用率报告 网络文件系统报 ...

  7. 爬虫---Beautiful Soup 反反爬虫事例

    前两章简单的讲了Beautiful Soup的用法,在爬虫的过程中相信都遇到过一些反爬虫,如何跳过这些反爬虫呢?今天通过知乎网写一个简单的反爬中 什么是反爬虫 简单的说就是使用任何技术手段,阻止别人批 ...

  8. 3-剑指Offer: 连续子数组的最大和

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  9. JS高阶---闭包面试题

    [面试题1] 答案:The Window 分析: 本案例里,不存在闭包. 条件: .函数嵌套(满足) .内部函数调用外部函数变量(没有) 综上所述,该例中不存在闭包 [面试题2] 答案:My Obje ...

  10. Spring(005)-多环境Profile

    多个环境下的配置应该怎么进行,比如数据库连接字符,多个环境不同,spring的方案,大概总结如下. 例子,数据库配置. 定义一个获取数据库链接的接口 public interface DataConn ...