//控制器層

//分頁
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. WPF--3Dmax+blend+WPF综合运用

    引自:http://blog.sina.com.cn/s/blog_95dbdf9e0100we3z.html 本人小菜,WPF刚入门,只是写一下最近的项目心得.欢迎各位前辈们前来拍砖指正,感激不敬! ...

  2. yii2.0表单《《提交》》变量设置

    public $enableCsrfValidation = false;

  3. markdownpad 2 的使用

    1. 注册 邮箱:Soar360@live.com 授权秘钥: GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M ...

  4. python 快速排序 完整

    两头开始 以第一个为基准,从有往左,找第一个比基准数 大的,然后交换 从左往右,找第一个比基准数晓得,然后交换 遍历剩下的 基准数  左边的数们  以及  基准数 右边的数们 def quick_so ...

  5. WPF绘制自定义窗口

    原文:WPF绘制自定义窗口 WPF是制作界面的一大利器,下面就用WPF模拟一下360的软件管理界面,360软件管理界面如下: 界面不难,主要有如下几个要素: 窗体的圆角 自定义标题栏及按钮 自定义状态 ...

  6. objective-c启用ARC时的内存管理

    PDF版下载:http://download.csdn.net/detail/cuibo1123/7443125      在objective-c中,内存的引用计数一直是一个让人比較头疼的问题.尤其 ...

  7. JDBC学习笔记——简单的连接池

    1.使用LinkedList保存连接                                                               即使是最简单的JDBC操作,也需要包含 ...

  8. ubuntu12.04单卡server(mentohust认证)再加上交换机做路由软件共享上网

    最近成立了实验室的网络环境中,通过交换机连接的所有主机实验室.想要一个通过该server(单卡)做网关,使用mentohust认证外网,然后内网中的其它主机通过此网关来连接外网. 1.首先在serve ...

  9. 脚本 启动/停止 jar包服务

    windows (.bat): @set port=8692 @echo %port% for /f "tokens=5" %%i in ('netstat -aon ^| fin ...

  10. wpf Content数据绑定StringFormat起作用的原理和解决

    原文:wpf Content数据绑定StringFormat起作用的原理和解决 <Window x:Class="WpfOne.Bind.Bind6" xmlns=" ...