这里我把请求封装成一个对象,使用post传递。其实使用get方式传递,在url上当作参数传递方式更为简单。思路相同,只是传递方式不同。
function connect(request){
$.ajax('question/find',{
'data':request,
'method':'POST',
'content-Type':'application/json',
success:function(data){
//分页显示函数封装
getPage(1);
function getPage(beginRow){
$('tbody').empty();
var totalRows = 0;
data.forEach(function(item,index){
totalRows = index+1;
});
var nowRow = 4;
$('.goPage span').remove();
data.forEach(function(item,index){
//分页显示
$('.goPage span').remove();
var endRow = beginRow+(nowRow-1);
$('.goPage').append('<span>共有'+totalRows+'条记录</span>');
var totalPage = Math.ceil(totalRows/nowRow);
var nowPage = (beginRow+(nowRow-1))/nowRow;//当前页数
$('.goPage').append(' <span>当前在第'+nowPage+'页</span>');
if(item.type == '单选' ||item.type == '多选'){
var flag = item.name.indexOf('A');
name = item.name.slice(0,flag);
}else{
name = item.name;
}
if(beginRow<=(index+1)&&(index+1)<=endRow){
var newTr = $('<tr>'
+'<td><input type="checkbox" value="'+item.id+'"></td>'
+'<td>'+name+'</td>'
+'<td>'+item.type+'</td>'
+'<td>'+item.credit+'</td>'
+'<td>'+item.difficulty+'</td>'
+'<td>'+item.knowledge+'</td>'
+'<td>'+item.direction+'</td>'
+'</tr>');
$('tbody').append(newTr);
}
if(nowPage == 1){
$('.goPage').append('<span>首页</span>');
$('.goPage').append('<span>上一页</span>');
}else{
$('.goPage').append('<span style="color:blue">首页</span>');
$('.goPage').append('<span style="color:blue">上一页</span>');
}
if(nowPage == totalPage){
$('.goPage').append('<span>下一页</span>');
$('.goPage').append('<span>尾页</span>');
}else{
$('.goPage').append('<span style="color:blue">下一页</span>');
$('.goPage').append('<span style="color:blue">尾页</span>');
}
$('.goPage span').eq(2).on('click',function(){
getPage(1);
});
$('.goPage span').eq(3).on('click',function(){
getPage(beginRow-nowRow);
});
$('.goPage span').eq(4).on('click',function(){
getPage(beginRow+nowRow);
});
$('.goPage span').eq(5).on('click',function(){
getPage((totalPage-1)*nowRow+1);
});
})
}
}
})
}
其中,request为请求体,即请求后台数据所需要发送的数据。
我是用的span标签当作按钮,所以有个bug就是到了最后一页和第一页时点击还是会继续累加或者减。大神可以给我修改意见,谢谢!
//传递筛选条件
var tx;
var direction;
var knowledge;
var hard;
var request = {};
//加载获取题库
connect(request);
此为调用分页函数所传递的参数。其中每页条数等数据可以自行修改。