国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

詳解PHP+AJAX無刷新分頁實(shí)現(xiàn)方法

2024-04-25 20:43:04
字體:
供稿:網(wǎng)友

PHP+AJAX無刷新分頁實(shí)現(xiàn)代碼詳解,最近在看ajax 教程,就想寫個(gè)簡(jiǎn)單入門的PHP+AJAX無刷新分頁,我們依據(jù)ajax開發(fā)框架,代碼如下:

var http_request=false;

function send_request(url){//初始化,指定處理函數(shù),發(fā)送請(qǐng)求的函數(shù)

http_request=false;

//開始初始化XMLHttpRequest對(duì)象

if(window.XMLHttpRequest){//Mozilla瀏覽器

http_request=new XMLHttpRequest();

if(http_request.overrideMimeType){//設(shè)置MIME類別

http_request.overrideMimeType("text/xml");

}

}

else if(window.ActiveXObject){//IE瀏覽器

try{

http_request=new ActiveXObject("Msxml2.XMLHttp");

}catch(e){

try{

http_request=new ActiveXobject("Microsoft.XMLHttp");

}catch(e){}

}

}

if(!http_request){//異常,創(chuàng)建對(duì)象實(shí)例失敗

window.alert("創(chuàng)建XMLHttp對(duì)象失敗!");

return false;

}

http_request.onreadystatechange=processrequest;

//確定發(fā)送請(qǐng)求方式,URL,及是否同步執(zhí)行下段代碼

http_request.open("GET",url,true);

http_request.send(null);

}

//處理返回信息的函數(shù)

function processrequest(){

if(http_request.readyState==4){//判斷對(duì)象狀態(tài)

if(http_request.status==200){//信息已成功返回,開始處理信息

document.getElementById(reobj).innerHTML=http_request.responseText;

}

else{//頁面不正常

alert("您所請(qǐng)求的頁面不正常!");

}

}

}

function dopage(obj,url){

document.getElementById(obj).innerHTML="正在讀取數(shù)據(jù)...";

send_request(url);

reobj=obj;

}

內(nèi)容我放在一個(gè)div中顯示,當(dāng)翻頁動(dòng)作產(chǎn)生時(shí),利用AJAX更新DIV達(dá)到翻頁效果這是內(nèi)容顯示頁面代碼:

<?php

header("Content-type: text/html;charset=GBK");//輸出編碼,避免中文亂碼

?>

<html>

<head>

<title>ajax分頁演示</title>

<scrīpt language="javascrīpt" src="ajaxpg.js"></scrīpt>

</head>

<body>

<div id="result">

<?php

$page=isset($_GET['page'])?intval($_GET['page']):1;
//這句就是獲取page=18中的page的值,假如不存在page,那么頁數(shù)就是1。

$num=10; //每頁顯示10條數(shù)據(jù)

$db=mysql_connect("localhost","root","7529639"); //創(chuàng)建數(shù)據(jù)庫連接

mysql_select_db("cr_download"); //選擇要操作的數(shù)據(jù)庫

/*

首先咱們要獲取數(shù)據(jù)庫中到底有多少數(shù)據(jù),才能判斷具體要分多少頁,具體的公式就是

總數(shù)據(jù)庫除以每頁顯示的條數(shù),有余進(jìn)一。

也就是說10/3=3.3333=4 有余數(shù)就要進(jìn)一。

*/

$result=mysql_query("select * from cr_userinfo");

$total=mysql_num_rows($result); //查詢所有的數(shù)據(jù)

$url='test.php';//獲取本頁URL

//頁碼計(jì)算

$pagenum=ceil($total/$num); //獲得總頁數(shù),也是最后一頁

$page=min($pagenum,$page);//獲得首頁

$prepg=$page-1;//上一頁

$nextpg=($page==$pagenum ? 0 : $page+1);//下一頁

$offset=($page-1)*$num; //獲取limit的第一個(gè)參數(shù)的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。

//開始分頁導(dǎo)航條代碼:

$pagenav="顯示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 條記錄,共 $total 條記錄 ";

//如果只有一頁則跳出函數(shù):

if($pagenum<=1) return false;

$pagenav.=" <a href=javascrīpt:dopage('result','$url?page=1');>首頁</a> ";

if($prepg) $pagenav.=" <a href=javascrīpt:dopage('result','$url?page=$prepg');>前頁</a> "; else $pagenav.=" 前頁 ";

if($nextpg) $pagenav.=" <a href=javascrīpt:dopage('result','$url?page=$nextpg');>后頁</a> "; else $pagenav.=" 后頁 ";

$pagenav.=" <a href=javascrīpt:dopage('result','$url?page=$pagenum');>尾頁</a> ";

$pagenav.="</select> 頁,共 $pagenum 頁";

//假如傳入的頁數(shù)參數(shù)大于總頁數(shù),則顯示錯(cuò)誤信息

If($page>$pagenum){

Echo "Error : Can Not Found The page ".$page;

Exit;

}

$info=mysql_query("select * from cr_userinfo limit $offset,$num"); //獲取相應(yīng)頁數(shù)所需要顯示的數(shù)據(jù)

While($it=mysql_fetch_array($info)){

Echo $it['username'];

echo "<br>";

} //顯示數(shù)據(jù)

echo"<br>";

echo $pagenav;//輸出分頁導(dǎo)航

?>

</div>

</body>

</html>

翻頁的關(guān)鍵就在于翻頁時(shí)調(diào)用dopage()函數(shù),接著利用回調(diào)信息來更新div中的內(nèi)容,服務(wù)器端核心代碼:

<?php

header("Content-type: text/html;charset=GBK");//輸出編碼,避免中文亂碼

$page=isset($_GET['page'])?intval($_GET['page']):1; //這句就是獲取page=18中的page的值,假如不存在page,那么頁數(shù)就是1。

$num=10; //每頁顯示10條數(shù)據(jù)

$db=mysql_connect("localhost","root","7529639"); //創(chuàng)建數(shù)據(jù)庫連接

mysql_select_db("cr_download"); //選擇要操作的數(shù)據(jù)庫

/*

首先咱們要獲取數(shù)據(jù)庫中到底有多少數(shù)據(jù),才能判斷具體要分多少頁,具體的公式就是

總數(shù)據(jù)庫除以每頁顯示的條數(shù),有余進(jìn)一。

也就是說10/3=3.3333=4 有余數(shù)就要進(jìn)一。

*/

$result=mysql_query("select * from cr_userinfo");

$total=mysql_num_rows($result); //查詢所有的數(shù)據(jù)

$url='test.php';//獲取本頁URL

//頁碼計(jì)算

$pagenum=ceil($total/$num); //獲得總頁數(shù),也是最后一頁

$page=min($pagenum,$page);//獲得首頁

$prepg=$page-1;//上一頁

$nextpg=($page==$pagenum ? 0 : $page+1);//下一頁

$offset=($page-1)*$num; //獲取limit的第一個(gè)參數(shù)的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。

//開始分頁導(dǎo)航條代碼:

$pagenav="顯示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 條記錄,共 $total 條記錄 ";

//如果只有一頁則跳出函數(shù):

if($pagenum<=1) return false;

$pagenav.=" <a href=javascrīpt:dopage('result','$url?page=1');>首頁</a> ";

if($prepg) $pagenav.=" <a href=javascrīpt:dopage('result','$url?page=$prepg');>前頁</a> "; else $pagenav.=" 前頁 ";

if($nextpg) $pagenav.=" <a href=javascrīpt:dopage('result','$url?page=$nextpg');>后頁</a> "; else $pagenav.=" 后頁 ";

$pagenav.=" <a href=javascrīpt:dopage('result','$url?page=$pagenum');>尾頁</a> ";

$pagenav.="</select> 頁,共 $pagenum 頁";

//假如傳入的頁數(shù)參數(shù)大于總頁數(shù),則顯示錯(cuò)誤信息

If($page>$pagenum){

Echo "Error : Can Not Found The page ".$page;

Exit;

}

$info=mysql_query("select * from cr_userinfo limit $offset,$num"); //獲取相應(yīng)頁數(shù)所需要顯示的數(shù)據(jù)

While($it=mysql_fetch_array($info)){

Echo $it['username'];

echo "<br>";

} //顯示數(shù)據(jù)

echo"<br>";

echo $pagenav;//輸出分頁導(dǎo)航

?>

以上為大家詳細(xì)解釋了PHP+AJAX無刷新分頁實(shí)現(xiàn)方法,希望對(duì)大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邹平县| 淮南市| 营山县| 眉山市| 饶河县| 石家庄市| 铁岭市| 罗山县| 阜平县| 青河县| 沽源县| 百色市| 巴塘县| 浑源县| 莱芜市| 丹江口市| 同仁县| 牟定县| 区。| 武陟县| 宜城市| 二连浩特市| 潞西市| 杨浦区| 绿春县| 兴业县| 星子县| 油尖旺区| 平乐县| 社会| 许昌市| 汶川县| 和平县| 忻城县| 陇南市| 乌什县| 洪江市| 滦平县| 全南县| 湖州市| 瓮安县|