關于Ajax異步請求后臺數(shù)據(jù)進行動態(tài)分頁功能
ajax請求后臺拿到json類型的數(shù)據(jù)后,可以在它的success回調方法中進行動態(tài)分頁,也就是表格重繪,此時,我們需要得到的數(shù)據(jù)包括:查詢得到的數(shù)據(jù)、數(shù)據(jù)總條數(shù)、總頁數(shù)、當前頁數(shù),其中前三條可在后臺獲取,對于當前頁數(shù),需要從前端獲取點擊頁數(shù)再通過請求傳遞給后臺,后臺做完相應處理后再傳回給前端。
請看如下例子:
/**
*
* @param page 當前頁
*/
function getData(page){
var schoolid = $("#schoolid option:selected").text();
var apptype = $("#apptype option:selected").text();
var appname = $("#appname").val();
$.ajax({
type : "POST",
url : "pageAjax",
dataType : "json",
data : {'schoolid':schoolid,'apptype':apptype,'page':page,'appname':appname},
success : function(data){
console.log("成功了!"+data);
$("#table").html("");
$(".turn_page").html("");
var str = "<tr><th class='w20'>應用編號</th>"
+"<th class='w15'>學校名稱</th>"
+"<th class='w30'>應用名稱</th>"
+"<th class='w25'>應用分類</th>"
+"<th class='w10'>應用類型</th></tr>";
for(var i=0;i<data.resultList.length;i++){
str += "<tr onclick='showAppDetail(this);'><td>"+data.resultList[i].appid+"</td><td>"
+data.resultList[i].schoolid+"</td><td>"+data.resultList[i].appname+"</td><td>"
+data.resultList[i].app_departid+"</td><td>"+data.resultList[i].apptype+"</td></tr>";
}
$("#table").html(str); //重繪table
var pageNum = data.pageNum; //獲取得到的數(shù)據(jù)頁數(shù)
var curPage = data.curPage; //獲取當前頁
str = "";
/*若頁數(shù)大于1則添加上一頁、下一頁鏈接*/
if(data.pageNum>1){
str = "<ul><li><a href='javascript:void(0);onclick=preEvent();' id='pre' data-num='1'>上一頁</a></li>"
}else{
str = "<ul>";
}
/*循環(huán)輸出每一頁的鏈接*/
for(var i=0;i<data.pageNum;i++){
str += "<li><a href='javascript:void(0);onclick=getData("+(parseInt(i)+1)+");' data-type='num'>"+(parseInt(i)+1)+"</a></li>";
}
if(str.indexOf("上一頁")>-1){
str += "<li><a href='javascript:void(0);onclick=nextEvent();' id='next' data-num='1'>下一頁</a></li>"
+"<span>共<span id='pageNum'>"+pageNum+"</span>頁</span></ul>";
}else{
str += "<span>共<span id='pageNum'>"+pageNum+"</span>頁</span></ul>";
}
$(".turn_page").html(str);
//把當前頁碼存到上一頁、下一頁的data-num屬性中,這樣可以在點擊上一頁或者下一頁時知道應該跳到哪頁
$("#pre").attr("data-num",curPage);
$("#next").attr("data-num",curPage);
},
error : function(data){
alert("請求失敗");
}
});
}
/**
* 上一頁點擊事件
*/
function preEvent(){
var curPage = $("#pre").attr("data-num");
if(curPage<=1){
$(this).attr('disabled',"true");
}else{
curPage = parseInt(curPage)-1;
getData(curPage);
}
}
/**
* 下一頁點擊事件
*/
function nextEvent(){
var curPage = $("#next").attr("data-num");
var pageNum = $("#pageNum").text();
if(curPage>=pageNum){
$(this).attr('disabled',"true");
}else{
curPage = parseInt(curPage)+1;
getData(curPage);
}
}
對應的HTML代碼
<div class="table">
<table id="table">
</table>
</div>
<div class="turn_page">
</div>
注意:標簽的href屬性,如href=”javascript:void(0);onclick=getData();”
要讓原來的點擊事件失去響應,重新給它定義點擊事件,要給它加上javascript:void(0);這句話,若寫的是href=”#”的話,點擊默認會跳到頁面頂部。
另外,ajax請求數(shù)據(jù)無刷新翻頁是異步請求,所以標簽的點擊事件要寫在它的屬性里,如上例,若寫在js當中,會造成頁面還沒加載出來,事件就已經(jīng)觸發(fā),導致沒有任何響應。
總結
以上所述是小編給大家介紹的關于Ajax異步請求后臺數(shù)據(jù)進行動態(tài)分頁功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
通過Ajax請求動態(tài)填充頁面數(shù)據(jù)的實例
今天小編就為大家分享一篇通過Ajax請求動態(tài)填充頁面數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
妙用Ajax技術實現(xiàn)局部刷新商品數(shù)量和總價實例代碼
這篇文章主要給大家介紹妙用Ajax技術實現(xiàn)局部刷新商品數(shù)量和總價實例代碼,非常不錯,需要的朋友一起看看吧2016-05-05
ajax提交到java后臺之后處理數(shù)據(jù)的實現(xiàn)
下面小編就為大家?guī)硪黄猘jax提交到java后臺之后處理數(shù)據(jù)的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05

