今天我們要用ajax做一個(gè)分頁(yè):
實(shí)現(xiàn)Ajax分頁(yè):
如果可以的話加上查詢條件
- 找一張表做分頁(yè)
- 分頁(yè)不使用page類
- 頁(yè)面不用刷新
- Ajax加載數(shù)據(jù)
!doctype html>
html lang="en">
head>
meta charset="UTF-8" />
title>Document/title>
script src="jquery-1.11.2.min.js">/script>
style type="text/css">
.dangqian{ background-color:#69F}
/style>
/head>
body>
div>
input type="text" id="key" />
input type="button" value="查詢" id="chaxun" />
/div>
table width="50%" border="1" bordercolordark="0" bordercolorlight="0">
tr>
td>代號(hào)/td>
td>名稱/td>
td>父級(jí)代號(hào)/td>
/tr>
tbody id="neirong">!--顯示內(nèi)容-->
/tbody>
/table>
div id="fenyexinxi">
/div>
/body>
script type="text/javascript">
var page = 1;//定個(gè)變量,當(dāng)前要顯示的頁(yè)
Load();//加載數(shù)據(jù)
Loadfenyexinxi();//加載分頁(yè)信息
//查詢
$("#chaxun").click(function(){
page = 1;
Load();//加載數(shù)據(jù)
Loadfenyexinxi();//加載分頁(yè)信息
})
function Load()
{
var key = $("#key").val();//查詢條件。用戶輸入的內(nèi)容
$.ajax({
url:"chuli.php",
data: {
page: page,
key: key
},//傳2個(gè)參數(shù)一當(dāng)前頁(yè)2關(guān)鍵字也就是查詢條件
type:"POST",
dataType:"JSON",
success: function(data){//匿名函數(shù)
var str = "";//這個(gè)將來(lái)要放表格顯示的
for(var k in data)//通過K可以獲得每一條數(shù)據(jù)
{//加載數(shù)據(jù)完成
str +="tr>td>"+data[k].AreaCode+"/td>td>"+data[k].AreaName+"/td>td>"+data[k].ParentAreaCode+"/td>/tr>";//要顯示的內(nèi)容,代號(hào)、名稱父級(jí)代號(hào)
}
$("#neirong").html(str);
}
});
}
function Loadfenyexinxi()//分頁(yè)信息
{
var str = "";
var minys = 1;//最小頁(yè)數(shù)
var maxys = 1;//最大頁(yè)數(shù)
var key = $("#key").val();//取關(guān)鍵字用于傳到zys頁(yè)面用
$.ajax({
async:false,
type:"POST",
url:"fenye.php",
data:{key:key},
dataType:"TEXT",
success:function(d){
maxys = d;
}
});
str += "span style='text-decoration:underline; cursor:pointer'>總共:"+maxys+"頁(yè)/span> ";
str += "span id='prev' style='text-decoration:underline; cursor:pointer'>上一頁(yè)/span>";
for(var i=page-2;ipage+3;i++)
{
if(i>=minys i=maxys)
{
if(i==page)
{
str += "span style='text-decoration:underline; cursor:pointer' class='dangqian' bs='"+i+"'>"+i+"/span> ";
}
else
{
str += "span style='text-decoration:underline; cursor:pointer' class='list' bs='"+i+"'>"+i+"/span> ";
}
}
}
str += "span style='text-decoration:underline; cursor:pointer' id='next'>下一頁(yè)/span>";
$("#fenyexinxi").html(str);
$("#prev").click(function(){
page = page-1;
if(page1)
{
page=1;
}
Load();
Loadfenyexinxi();
})
$("#next").click(function(){
page = page+1;
if(page>maxys)
{
page=maxys;
}
Load();
Loadfenyexinxi();
})
$(".list").click(function(){
page = parseInt($(this).attr("bs"));
Load();
Loadfenyexinxi();
})
}
/script>
/html>
上面是這頁(yè)面:test.php
?php
include("DBDA.class.php");
$db = new DBDA();
//把上個(gè)頁(yè)面的2個(gè)值傳過來(lái)
$page = $_POST["page"];//當(dāng)前頁(yè)
$key = $_POST["key"];//條件,關(guān)鍵字
$num = 20;//定義,一頁(yè)里多少條數(shù)據(jù),
$tiaoshu = ($page-1)*$num;//$tiaoshu跳過多少條($page-1)*$num現(xiàn)在$num是20條
//寫$SQL語(yǔ)句
$sql = "select * from chinastates where areaname like '%{$key}%' limit {$tiaoshu},{$num}";//根據(jù)關(guān)鍵字查like '%{$tiaojian}%'。
echo $db->JSONQuery($sql);
上面是處理頁(yè)面:chuli.php:
?php
include("DBDA.class.php");
$db = new DBDA();
$key = $_POST["key"];
$num = 20;
$sql = "select count(*) from chinastates where areaname like '%{$key}%'";
$zts = $db->StrQuery($sql);
echo ceil($zts/$num);
上面是分頁(yè)頁(yè)面:fenye.php
下面就是我們的顯示效果:
隨著點(diǎn)擊下一頁(yè),下面會(huì)顯示5頁(yè),并且是當(dāng)前頁(yè)左右各兩個(gè)頁(yè)面,每頁(yè)的顯示信息條數(shù)可以自己調(diào)整。
在上方的文本框中輸入關(guān)鍵詞會(huì)顯示出相關(guān)的信息。這就是我們用ajax做的分頁(yè)。
以上所述是小編給大家介紹的Ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Bootstrap Paginator分頁(yè)插件與ajax相結(jié)合實(shí)現(xiàn)動(dòng)態(tài)無(wú)刷新分頁(yè)效果
- 實(shí)例代碼講解ajax實(shí)現(xiàn)的無(wú)刷新分頁(yè)
- php+ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)
- php+ajax實(shí)現(xiàn)無(wú)刷新數(shù)據(jù)分頁(yè)的辦法
- jQuery+Ajax實(shí)現(xiàn)無(wú)刷新分頁(yè)
- jquery插件pagination實(shí)現(xiàn)無(wú)刷新ajax分頁(yè)
- Ajax無(wú)刷新分頁(yè)的性能優(yōu)化方法