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

一次只能排一个序!!!

基本样式

<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();

后台常用功能有哪些呢?

搜索,排序,导入,导出,新增,修改,删除,查看详情,以及直接修改,温馨提示等等。

最新文章

  1. .Net开发笔记(十四) 基于“泵”的UDP通信(接上篇)
  2. theano 实现图像局部对比度归一化
  3. 多节点ListView的加载效率
  4. C#如何在子窗体获取父窗体的实例
  5. ES6中的Class
  6. django 1.7 新特性 --- data migration
  7. http请求中java中的302和sendRedirect的区别
  8. poj3307
  9. http://jingyan.baidu.com/article/a3761b2b66fe141577f9aa51.html
  10. Asp.Net中的session配置
  11. 反射以及 getDeclaredMethods()和getMethods()区别
  12. linux 配置Apache 、PHP
  13. deeplearning.ai 作业中的Python常用命令
  14. angular js $post,$get请求传值
  15. 2018-2019-2 20165221 【网络对抗技术】-- Exp6 信息搜集与漏洞扫描
  16. 02 jmeter性能测试系列_JForum测试论坛的环境搭建
  17. mapreduce join
  18. &lt;jsp:forward page=&#39;/index&#39; /&gt;
  19. [转]基于boot2docker部署Docker环境
  20. Django组件(五) Django之ContentType组件

热门文章

  1. docker 安装与基本命令
  2. JPA笔记4 ManyToMany
  3. maven 学习---Eclipse构建Maven项目
  4. Bacula Plugins
  5. 微信支付H5支付开发文档
  6. linux 网站目录权限设置
  7. 人工智能头条(公开课笔记)+AI科技大本营——一拨微信公众号文章
  8. sql初——基础
  9. js 浮点型运算出错的原因和解决方法
  10. myeclipse开发工具的简单使用