關(guān)于Ajax異步請(qǐng)求后臺(tái)數(shù)據(jù)進(jìn)行動(dòng)態(tài)分頁(yè)功能
ajax請(qǐng)求后臺(tái)拿到j(luò)son類型的數(shù)據(jù)后,可以在它的success回調(diào)方法中進(jìn)行動(dòng)態(tài)分頁(yè),也就是表格重繪,此時(shí),我們需要得到的數(shù)據(jù)包括:查詢得到的數(shù)據(jù)、數(shù)據(jù)總條數(shù)、總頁(yè)數(shù)、當(dāng)前頁(yè)數(shù),其中前三條可在后臺(tái)獲取,對(duì)于當(dāng)前頁(yè)數(shù),需要從前端獲取點(diǎn)擊頁(yè)數(shù)再通過(guò)請(qǐng)求傳遞給后臺(tái),后臺(tái)做完相應(yīng)處理后再傳回給前端。
請(qǐng)看如下例子:
/**
*
* @param page 當(dāng)前頁(yè)
*/
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'>應(yīng)用編號(hào)</th>"
+"<th class='w15'>學(xué)校名稱</th>"
+"<th class='w30'>應(yīng)用名稱</th>"
+"<th class='w25'>應(yīng)用分類</th>"
+"<th class='w10'>應(yīng)用類型</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ù)頁(yè)數(shù)
var curPage = data.curPage; //獲取當(dāng)前頁(yè)
str = "";
/*若頁(yè)數(shù)大于1則添加上一頁(yè)、下一頁(yè)鏈接*/
if(data.pageNum>1){
str = "<ul><li><a href='javascript:void(0);onclick=preEvent();' id='pre' data-num='1'>上一頁(yè)</a></li>"
}else{
str = "<ul>";
}
/*循環(huán)輸出每一頁(yè)的鏈接*/
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("上一頁(yè)")>-1){
str += "<li><a href='javascript:void(0);onclick=nextEvent();' id='next' data-num='1'>下一頁(yè)</a></li>"
+"<span>共<span id='pageNum'>"+pageNum+"</span>頁(yè)</span></ul>";
}else{
str += "<span>共<span id='pageNum'>"+pageNum+"</span>頁(yè)</span></ul>";
}
$(".turn_page").html(str);
//把當(dāng)前頁(yè)碼存到上一頁(yè)、下一頁(yè)的data-num屬性中,這樣可以在點(diǎn)擊上一頁(yè)或者下一頁(yè)時(shí)知道應(yīng)該跳到哪頁(yè)
$("#pre").attr("data-num",curPage);
$("#next").attr("data-num",curPage);
},
error : function(data){
alert("請(qǐng)求失敗");
}
});
}
/**
* 上一頁(yè)點(diǎn)擊事件
*/
function preEvent(){
var curPage = $("#pre").attr("data-num");
if(curPage<=1){
$(this).attr('disabled',"true");
}else{
curPage = parseInt(curPage)-1;
getData(curPage);
}
}
/**
* 下一頁(yè)點(diǎn)擊事件
*/
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);
}
}
對(duì)應(yīng)的HTML代碼
<div class="table">
<table id="table">
</table>
</div>
<div class="turn_page">
</div>
注意:標(biāo)簽的href屬性,如href=”javascript:void(0);onclick=getData();”
要讓原來(lái)的點(diǎn)擊事件失去響應(yīng),重新給它定義點(diǎn)擊事件,要給它加上javascript:void(0);這句話,若寫的是href=”#”的話,點(diǎn)擊默認(rèn)會(huì)跳到頁(yè)面頂部。
另外,ajax請(qǐng)求數(shù)據(jù)無(wú)刷新翻頁(yè)是異步請(qǐng)求,所以標(biāo)簽的點(diǎn)擊事件要寫在它的屬性里,如上例,若寫在js當(dāng)中,會(huì)造成頁(yè)面還沒(méi)加載出來(lái),事件就已經(jīng)觸發(fā),導(dǎo)致沒(méi)有任何響應(yīng)。
總結(jié)
以上所述是小編給大家介紹的關(guān)于Ajax異步請(qǐng)求后臺(tái)數(shù)據(jù)進(jìn)行動(dòng)態(tài)分頁(yè)功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Ajax實(shí)現(xiàn)關(guān)鍵字聯(lián)想和自動(dòng)補(bǔ)全功能及遇到坑
這篇文章主要介紹了Ajax實(shí)現(xiàn)關(guān)鍵字聯(lián)想和自動(dòng)補(bǔ)全功能,實(shí)現(xiàn)代碼包括前端部分和后端部分,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
ajax三級(jí)聯(lián)動(dòng)的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了ajax三級(jí)聯(lián)動(dòng)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
DELETE 請(qǐng)求如何通過(guò)ajax進(jìn)行發(fā)送(方法小結(jié))
DELETE 請(qǐng)求用于向服務(wù)器發(fā)送刪除資源的請(qǐng)求,它是 RESTful API 中的一個(gè)重要方法,用于刪除指定的資源,本文給大家介紹DELETE 請(qǐng)求如何通過(guò)ajax進(jìn)行發(fā)送,感興趣的朋友一起看看吧2023-11-11
Ajax修改數(shù)據(jù)即時(shí)顯示篇實(shí)現(xiàn)代碼
上一篇我們講了如何使用ajax向數(shù)據(jù)庫(kù)添加數(shù)據(jù),今天我們要大家學(xué)習(xí)的課程是:使用ajax修改數(shù)據(jù)庫(kù)數(shù)據(jù),并在客戶網(wǎng)頁(yè)立即顯示新的內(nèi)容.當(dāng)然在修改的過(guò)程中同樣不會(huì)有刷新網(wǎng)頁(yè)的情況發(fā)生!2010-10-10

