ajax分页效果图如下:
首先,先看 HTML 代码和 CSS 代码,我们需要一个 table 和一个 footer:
<div id="global"> <div id="table"> <table> <col width="19%"> <col width="19%"> <col width="19%"> <col width="19%"> <col width="24%"> <tr> <th>日期</th> <th>时间</th> <th>事件</th> <th>报警画面</th> <th>事件备注</th> </tr> </table> </div> <div id="footer"> <span id="summary"></span> <ul id="pagination"> <li id="01">首页</li> <li id="02">上一页</li> <li id="03">下一页</li> <li id="04">最后一页</li> </ul> <div id="select"> <span>跳转到 </span> <input type="text" name="page_num"> <span> 页 </span> <input type="button" name="go_btn" value="跳转"> </div> </div> </div>
下面是 css 代码:
#global{
position: relative;
}
#table{
position: absolute;
top:19%;
left:1.6%;
width: 55%;
}
#table textarea{
width: 10vw;
height: 10vh;
background-color: transparent;
color: #fff;
border-width: 0;
text-align: center;
}
table, th, td {
border: 0.2px solid rgba(60,166,206,0.2);
border-collapse: collapse;
color:rgba(60,166,206,1);
}
th, td {
padding: 3px;
text-align: center;
font-size: 1.6vmin;
}
td{
background: rgba(2,29,54,1);
}
th{
background: rgba(20,29,54,1);
padding: 1.8% 0;
color: rgba(255,255,255,0.8);
}
#footer{
position: absolute;
bottom:5vh;
left:7vw;
text-align: center;
color: rgba(60,166,206,1);
}
#pagination{
display: inline-block;
}
#pagination li{
display: inline;
}
#select{
display: inline-block;
margin-left: 40px;
}
#select input[type="text"]{
width: 30px;
height: 20px;
background-color: #000;
border-width: 1px;
}
#select input[type="button"]{
width: 40px;
height: 23px;
background: #000;
border:none;
}
ul li{
cursor: pointer;
}
初始化开始日期,结束日期,请求的页数,请求的每页数量,总共有多少页数据,并通过 ajax 将这些数据传给后台提供的 API 数据接口,进而从数据库中获取到数据,然后可以在前端展示:
var start_date = "2017-01-01", end_date = "2017-01-08"; var pageNo = 1; var pageSize = 4; var pages = 0;
如何获取表格的数据并将其 append 到前端?如何获取分页的数据并将其 append 到前端?使用下面我们定义的函数:
loadData(pageNo, pageSize);
接下来看这个函数如何跟 API 数据接口沟通:
function loadData(pageNo, pageSize){
$(".detail").remove(); //每次重新从 API 数据接口获取数据都要先清除原先表格 `<tr>` 的内容
$.ajax({
url: "/history_alarm",
type: "POST",
data: JSON.stringify({date:date, page_num:pageNo, page_size:pageSize}),
success:function(result){
var results = JSON.parse(result);
var list = results.alarm;
var totalCount = results.alarm_count;
pages = results.page_count;
if(list.length != 0){
for(var i=0; i<list.length; i++){
var alarm_id = list[i].alarm_id;
var alarm_pic = list[i].alarm_pic;
var date = list[i].date;
var event = list[i].event;
var time = list[i].time;
var remark = list[i].remark;
appendData(alarm_id, alarm_pic, date, event, time, remark);
addEvent(alarm_id);
}
$("#table").show();
$("#footer").show();
displayFooter(totalCount, pages, pageNo);
} else{
$("#table").hide();
$("#footer").hide();
}
},
error:function(){
//error handle function
}
});
}
在 loadData 这个函数中我们还定义了另外3个函数,接下来我们先来看 appendData:
//注意到我们将 `alarm_id` 作为 `<textarea>` 'class` 的值,也作为提交按钮 `id` 的值,这是因为我们要通过 ajax 将用户输入到某一个 `<textarea>` 的值作为参数传给后台 API 接口,由其写入数据库。
function appendData(alarm_id, alarm_pic, date, event, time, remark){
var text = '<tr class="detail"><td>'+date+'</td><td>'+time+'</td<td>'+event+'</td>'+
'<td><img class="img01" src=data:image/jpeg;base64,' + alarm_pic + '</td>'+
'<td class="modity_btn"><textarea cols="5" rows="3"
class='+alarm_id+'>'+remark+'</textarea>'+'<img id='+alarm_id+' src="{{
static_url("slice/modify.png") }}"></td></tr>';;
$("#table table").append(text);
}
//该函数定义了如何通过 ajax 将用户输入到某一个 `<textarea>` 的值作为参数传给后台 API 接口,并写入数据库
function addEvent(alarm_id){
$("#"+alarm_id).click(function(){
var remark = $("."+alarm_id).val();
if(remark != ""){
$.ajax({
url:"/history_alarm",
type:"POST",
data:JSON.stringify({alarm_id:alarm_id, note:remark}),
success:function(result){
var results = JSON.parse(result);
if(results.status == "ok"){
console.log('ok');
}
}
})
}
})
}
function displayFooter(totalCount, pages, pageNo){
var newText = '共' + totalCount + '条,' + '第' + pageNo + '页,' + '共' + pages + '页';
$("#summary").text(newText);
}
获取数据的函数写好了,接下来就要点击分页的“首页、上一页、下一页、最后一页、跳转”时候所对应的事件了。思路是这样的:用户点击分页的每一个项目,都要重新判断 pageNo,然后将 pageNo 作为参数,再次调用获取数据的 API 接口:
$("input[name='page_num']").keydown(function(e){ if(e.keyCode == 13){ $("input[name='go_btn']").click(); } });
$("input[name='go_btn']").click(function(){
var goPage = $("input[name='page_num']").val();
if(goPage >= 1 && goPage <=pages && goPage != pageNo){
pageNo = goPage;
loadData(pageNo, pageSize);
} else{
return false;
}
});
$("#01").click(function(){
pageNo = 1;
loadData(pageNo, pageSize);
});
$("#04").click(function(){
pageNo = pages;
loadData(pageNo, pageSize);
});
$("#02").click(function(){
if(pageNo == 1){
return false;
} else{
pageNo--;
loadData(pageNo, pageSize);
}
});
$("#03").click(function(){
if(pageNo == pages){
return false;
} else{
pageNo++;
loadData(pageNo, pageSize);
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ajax
# 分页
# 用jQuery中的ajax分页实现代码
# JQuery+Ajax无刷新分页的实例代码
# jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
# Ajax读取数据之分页显示篇实现代码
# php
# ajax实现分页
# JS+Ajax+Jquery实现页面无刷新分页以及分组 超强的实现
# 使用PHP+JQuery+Ajax分页的实现
# 基于Jquery+Ajax+Json的高效分页实现代码
# jQuery DataTables插件自定义Ajax分页实例解析
# php+ajax实现无刷新分页的方法
# 下一页
# 上一页
# 跳转
# 首页
# 好了
# 都要
# 是这样
# 并将其
# 每页
# 有多少
# 注意到
# 要先
# 这是因为
# 数据库中
# 先看
# 由其
# 大家多多
# 跳转到
# 所对应
相关文章:
制作国外网站的软件,国外有哪些比较优质的网站推荐?
宝塔新建站点为何无法访问?如何排查?
招贴海报怎么做,什么是海报招贴?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
如何通过山东自助建站平台快速注册域名?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
ppt制作免费网站有哪些,ppt模板免费下载网站?
如何快速搭建自助建站会员专属系统?
网站代码制作软件有哪些,如何生成自己网站的代码?
外贸公司网站制作哪家好,maersk船公司官网?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
如何选择高效稳定的ISP建站解决方案?
如何通过西部数码建站助手快速创建专业网站?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
如何快速打造个性化非模板自助建站?
小型网站制作HTML,*游戏网站怎么搭建?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
如何零基础在云服务器搭建WordPress站点?
建站之星安装提示数据库无法连接如何解决?
怎么将XML数据可视化 D3.js加载XML
如何通过商城免费建站系统源码自定义网站主题?
如何选择可靠的免备案建站服务器?
,网页ppt怎么弄成自己的ppt?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
如何获取免费开源的自助建站系统源码?
建站之星图片链接生成指南:自助建站与智能设计教程
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
如何访问已购建站主机并解决登录问题?
建站之星如何开启自定义404页面避免用户流失?
高端云建站费用究竟需要多少预算?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
网页设计与网站制作内容,怎样注册网站?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
已有域名和空间如何快速搭建网站?
宿州网站制作公司兴策,安徽省低保查询网站?
如何在云主机上快速搭建网站?
官网网站制作腾讯审核要多久,联想路由器newifi官网
常州企业网站制作公司,全国继续教育网怎么登录?
郑州企业网站制作公司,郑州招聘网站有哪些?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
上海网站制作开发公司,上海买房比较好的网站有哪些?
建站之星安装失败:服务器环境不兼容?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何在搬瓦工VPS快速搭建网站?
兔展官网 在线制作,怎样制作微信请帖?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
定制建站流程步骤详解:一站式方案设计与开发指南
*请认真填写需求信息,我们会在24小时内与您取得联系。