//控制器層

//分頁
public function list_january_table(){

//設置當前頁
$page = input("post.page") ? input("post.page") : 1;
//設置每頁顯示條數
$size = 3;
//查詢總條數
$num = Db::table("January_table")->count();
//查詢總頁數
$end = ceil($num/$size);
//計算偏移量
$offset = ($page-1)*$size;
//查詢所有條數
$data = Db::table("January_table")->limit($offset,$size)->select();
//手機號碼中獎四位隱藏
foreach ($data as $key=>$val){
$data[$key]['mobile']=substr($val['mobile'],0,3).'****'.substr($val['mobile'],7,4);
}
return view("list_January_table",['list'=>$data,'end'=>$end]);
}

//ajax分頁&搜索后分頁
public function ajax_page_January_table(){
$search = input("post.search");
if ($search==""){
//設置當前頁
$page = input("post.page") ? input("post.page") : 1;
//設置每頁顯示條數
$size = 3;
//查詢總條數
$num = Db::table("January_table")->count();
//查詢總頁數
$end = ceil($num/$size);
//計算偏移量
$offset = ($page-1)*$size;
//查詢所有條數
$data = Db::table("January_table")->limit($offset,$size)->select();
}else{
//設置當前頁
$page = input("post.page") ? input("post.page") : 1;
//設置每頁顯示條數
$size = 3;
//查詢總條數
$num = Db::table("January_table")->where('username','like',"%$search%")->count();
//查詢總頁數
$end = ceil($num/$size);
//計算偏移量
$offset = ($page-1)*$size;
//查詢所有條數
$data = Db::table("January_table")->where('username','like',"%$search%")->limit($offset,$size)->select();
}
return json($data);
}

//視圖層

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>展示頁面</title>
</head>
<body>
<center>
<h1>展示頁面</h1>
<input type="text" name="search" id="search"><input type="button" class="page" value="搜索">
<table border="1">
<tr>
<td>選擇</td>
<td>班名</td>
<td>年齡</td>
<td>性別</td>
<td>簡介</td>
<td>手機</td>
<td>頭像</td>
<td>詳情</td>
<td>操作</td>
</tr>
<tbody id="tb">
{volist name="list" id="vo"}
<tr id="{$vo.id}">
<td><input type="checkbox" name="check" value="{$vo.id}">{$vo.id}</td>
<td fd="username" class="cli_up">{$vo.username}</td>
<td>{$vo.age}</td>
<td ida="{$vo.id}" class="up_time">
{if condition="$vo.sex neq '1'"}男
{else /} 女
{/if}
</td>
<td>{$vo.desc}</td>
<td>{$vo.mobile}</td>
<td><img src="__STATIC__/uploads/{$vo.photo}" width="80px" alt=""></td>
<td>{$vo.content}</td>
<td><a href="javascript:void (0)" class="del" id_del="{$vo.id}">刪除</a></td>
</tr>
{/volist}
</tbody>
</table>
<a href="{:url('Index/add_January_Table')}">添加</a>
<input type="button" class="yes" value="全選">
<input type="button" class="no" value="全不選">
<input type="button" class="yn" value="反選">
<input type="button" class="del_all" value="批量刪除">
<input type="hidden" name="a_page" id="a_page" value="1">
<input type="hidden" name="last_page" id="last_page" value="{$end}">
<a href="javascript:void (0)" class="page">首頁</a>
<a href="javascript:void (0)" class="page">上一頁</a>
<a href="javascript:void (0)" class="page">下一頁</a>
<a href="javascript:void (0)" class="page">尾頁</a>
</center>
<script src="__STATIC__/jquery-3.3.1.min.js"></script>
<script>
//刪除
$(document).on("click",".del",function () {
var id = $(this).attr("id_del");
$.ajax({
url:"{:url('Index/del_January_table')}",
type:"get",
datatype:"json",
data:{
id:id,
},
success:function (data) {
if (data==1){
history.go(0);
} else {
alert("刪除失敗")
}
}
})
})
//批量刪除
$(document).on("click",".del_all",function () {
var check = document.getElementsByName("check");
var str= "";
for (i=0;i<check.length;i++) {
if (check[i].checked == true) {
str += "," + check[i].value;
}
}
var id = str.substr(1);alert(id)
$.ajax({
url:"{:url('Index/del_January_table')}",
type:"get",
datatype:"json",
data:{
id:id,
},
success:function (data) {
if (data==1){
alert("刪除成功");
history.go(0);
} else {
alert("刪除失敗")
}
}
});
})
//全選
$(document).on("click",".yes",function () {
var check = document.getElementsByName("check");
for (i=0;i<check.length;i++){
if (check[i].checked==false){
check[i].checked = true;
}
}
})
//全不選
$(document).on("click",".no",function () {
var check = document.getElementsByName("check");
for (i=0;i<check.length;i++){
if (check[i].checked==true){
check[i].checked = false;
}
}
})
//反選
$(document).on("click",".yn",function () {
var check = document.getElementsByName("check");
for (i=0;i<check.length;i++){
if (check[i].checked==true){
check[i].checked = false;
}else {
check[i].checked = true;
}
}
})
//即時更改
$(document).on("click",".up_time",function () {
var id = $(this).attr("ida");
var sex = $(this).text();
var obj = $(this);
$.ajax({
url:"{:url('Index/up_time_January_table')}",
type:"post",
datatype:"json",
data:{
id:id,
sex:sex,
},
success:function (data) {
if (data.code==1){
obj.html(data.message);
}else {
obj.html(data.message);
}
}
});
})
//即點即改
$(document).ready(function () {
$(".cli_up").dblclick(function () {
var id = $(this).parent().attr("id");
var fd = $(this).attr("fd");
var text = $(this).text();
var td = $(this);
$(this).html('<input type="text" class="cli'+id+fd+'" value="'+text+'">');
$(".cli"+id+fd).blur(function () {
var new_val = $(this).val();
$.ajax({
url:"{:url('Index/update_January_table')}",
type:"post",
datatype:"json",
data:{
id:id,
fd:fd,
new_val:new_val,
},
success:function (data) {
console.log(data);
if (data==1){
td.text(new_val);
} else {
td.text(text);
}
}
})
})
})
})
//ajax分頁&搜索
$(document).on("click",".page",function () {
var search = $("#search").val();
var a_val = $(this).text();
var a_page = $("#a_page").val();
var last_page = $("#last_page").val();
if (a_val=="首頁"){
var page = 1;
} else if (a_val=="上一頁"){
var page = parseInt(a_page)-1 < 1 ? 1 : parseInt(a_page)-1;
} else if (a_val=="下一頁"){
var page = parseInt(a_page)+1 > last_page ? last_page : parseInt(a_page)+1;
} else if (a_val=="尾頁"){
var page = last_page;
}
$.ajax({
url:"{:url('Index/ajax_page_January_table')}",
type:"post",
datatype:"json",
data:{
page:page,
search:search,
},
success:function (data) {
var str = "";
$.each(data,function (key,val) {
str+='<tr>\n' +
' <td><input type="checkbox" name="check">'+val.id+'</td>\n' +
' <td>'+val.username+'</td>\n' +
' <td>'+val.age+'</td>\n' +
' <td ida="'+val.id+'" class="up_time">'+val.sex+'</td>\n' +
' <td>'+val.desc+'</td>\n' +
' <td>'+val.mobile+'</td>\n' +
' <td><img src="__STATIC__/uploads/'+val.photo+'" width="80px" alt=""></td>\n' +
' <td>'+val.content+'</td>\n' +
' <td><a href="javascript:void (0)">刪除</a></td>\n' +
' </tr>';
})
$("#tb").html(str);
$("#a_page").val(page);
}
})
})
</script>
</body>
</html>

thinkphp5ajax分頁&&搜索後分頁的更多相关文章

  1. Solr系列六:solr搜索详解优化查询结果(分面搜索、搜索结果高亮、查询建议、折叠展开结果、结果分组、其他搜索特性介绍)

    一.分面搜索 1. 什么是分面搜索? 分面搜索:在搜索结果的基础上进行按指定维度的统计,以展示搜索结果的另一面信息.类似于SQL语句的group by 分面搜索的示例: http://localhos ...

  2. solr 分面搜索(转载)

    原文地址:http://blog.csdn.net/bingduanlbd/article/details/52199347 分面搜索(Faceting)基于索引词项对搜索结果进行分类,同时返回每个分 ...

  3. [心得] SQL Server Partition(表分區) 資料分佈探討

    最近在群裡有個朋友問了個問題是這樣的 用户表有一千多万行,主键是用户ID,我做了分区.但经常查询时,其它的表根据用户ID来关联,这样跨区查询,reads非常高.有什么好的处理办法?不分区的话,索引维护 ...

  4. 获取数值型数组中大于60的元素个数,给数值型数组中不足60分的加20分。(数组,for循环,if条件判断语句)

    package com.Summer_0420.cn; /** * @author Summer * 获取数值型数组中大于60的元素个数 * 给数值型数组中不足60分的加20分 */ public c ...

  5. 9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法

    /**  * 功能:给定数量不限的硬币.币值为25分,10分.5分.1分,计算n分有几种表示法. */ public static int makeChange(int n){ return make ...

  6. 计蒜客 39280.Travel-二分+最短路dijkstra-二分过程中保存结果,因为二分完最后的不一定是结果 (The 2019 ACM-ICPC China Shannxi Provincial Programming Contest M.) 2019ICPC西安邀请赛现场赛重现赛

    Travel There are nn planets in the MOT galaxy, and each planet has a unique number from 1 \sim n1∼n. ...

  7. 【转】mysql分库分表,数据库分库分表思路

    原文:https://www.cnblogs.com/butterfly100/p/9034281.html 同类参考:[转]数据库的分库分表基本思想 数据库分库分表思路   一. 数据切分 关系型数 ...

  8. 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序

    1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...

  9. 二分查找(通过相对位置判断区间位置)--17--二分--LeetCode33搜索旋转排序数组

    搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中 ...

随机推荐

  1. Android子线程中更新UI的4种方法

    方法一:用Handler 1.主线程中定义Handler: Handler mHandler = new Handler() { @Override public void handleMessage ...

  2. C++中的模板编程

    一,函数模板 1.函数模板的概念 C++中提供了函数模板,所谓函数模板,实际上是建立一个通用函数,其函数的返回值类型和函数的参数类型不具体指定,用一个虚拟的类型来表示.这个通用函数就被称为函数的模板. ...

  3. 通用javascript脚本函数库

    /* 名字:Common.js 功能:通用javascript脚本函数库 包括: 1.Trim(str)--去除字符串两边的空格 2.XMLEncode(str)--对字符串进行XML编码 3.Sho ...

  4. python3使用Lxml库操作XPath

    download address: http://pypi.python.org/pypi/lxml/2.3 lxml is a Pythonic, mature binding for the li ...

  5. Linux性能测试 dmesg命令

    dmesg 命令主要用来显示内核信息.使用 dmesg 可以有效诊断机器硬件故障或者添加硬件出现的问题.  另外,使用 dmesg 可以确定您的服务器安装了那些硬件.每次系统重启,系统都会检查所有硬件 ...

  6. nginx 502错 failed (13: Permission denied)

    安装nginx和php-fpm之后出现502错误 找了个理由说php-fpm不启动 ,但在我的实践中,该过程开始 找了半天没找到病因.视图nginx记录后 我发现下面的错误 [crit] 2686#0 ...

  7. eXtremeDB -- the shared memory 80error

    The customers got the shared memory 80error on AIX environment; utility truss is used to track the d ...

  8. [转载]Delphi常用类型及定义单元

    原文地址:Delphi常用类型及定义单元作者:沧海一声笑 Delphi常用类型及定义单元-总结  sndplaysound                mmsystem Type Unit Date ...

  9. 去掉 Windows 中控件的虚线框(当当 element == QStyle::PE_FrameFocusRect 时,直接返回,不绘制虚线框)

    在 Windows 中,控件得到焦点的时候,会显示一个虚线框,很多时候觉得不好看,通过自定义 QProxyStyle 就可以把这个虚线框去掉. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  10. WPF ListBox的内容属性Items

    <Window x:Class="XamlTest.Window3"        xmlns="http://schemas.microsoft.com/winf ...