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

首頁 > 開發(fā) > PHP > 正文

php+ajax實現(xiàn)無刷新數(shù)據(jù)分頁的辦法

2024-05-04 23:40:01
字體:
供稿:網(wǎng)友

這篇文章主要介紹了php+ajax實現(xiàn)無刷新分頁的方法,詳細(xì)講述了數(shù)據(jù)庫的創(chuàng)建、Ajax文件的實現(xiàn)及PHP調(diào)用方法,需要的朋友可以參考下

本文實例講述了php+ajax實現(xiàn)無刷新分頁的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

index.php 文件,代碼如下:

 

 
  1. <?php  
  2. header("Content-type: text/html;charset=GBK");//輸出編碼,避免中文亂碼  
  3. ?>  
  4. <html>  
  5. <head>  
  6. <title>ajax分頁演示</title>  
  7. <script language="javascript" src="ajaxpg.js"></script>  
  8. <link rel="stylesheet" type="text/css" href="page.css">  
  9. </head>  
  10. <body>  
  11. <div id="result">  
  12. <?php  
  13. $page=isset($_GET['page'])?intval($_GET['page']):1; //這句就是獲取page=18中的page的值,假如不存在page,那么頁數(shù)就是1。  
  14. $num=3; //每頁顯示10條數(shù)據(jù)  
  15.  
  16. $db=mysql_connect("localhost","root","123456"); //創(chuàng)建數(shù)據(jù)庫連接  
  17. mysql_select_db("demo",$db) or die("數(shù)據(jù)庫鏈接錯誤"); //選擇要操作的數(shù)據(jù)庫  
  18. mysql_query("set names gbk");  
  19. /*  
  20. 首先咱們要獲取數(shù)據(jù)庫中到底有多少數(shù)據(jù),才能判斷具體要分多少頁,具體的公式就是  
  21. 總數(shù)據(jù)庫除以每頁顯示的條數(shù),有余進一。  
  22. 也就是說10/3=3.3333=4 有余數(shù)就要進一。  
  23. */ 
  24.  
  25. $result=mysql_query("select * from brand");  
  26. $total=mysql_num_rows($result); //查詢所有的數(shù)據(jù)  
  27.  
  28. $url='test.php';//設(shè)置ajax提交頁面地址的URL,這里設(shè)置成test.php通過ajax把參數(shù)傳遞給test.php再把處理過的內(nèi)容賦值到本頁的div id=result。  
  29. //頁碼計算  
  30. $pagenum=ceil($total/$num);//獲得總頁數(shù),也是最后一頁  
  31. $page=min($pagenum,$page);//獲得首頁  
  32. $prepg=$page-1;//上一頁  
  33. $nextpg=($page==$pagenum ? 0 : $page+1);//下一頁  
  34. $offset=($page-1)*$num; //獲取limit的第一個參數(shù)的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。  
  35. $pagenav="<ul>";  
  36.  
  37. //開始分頁導(dǎo)航條代碼:  
  38. $pagenav.="<li>顯示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 條記錄</li><li>共 $total 條記錄</li>";  
  39.  
  40. //如果只有一頁則跳出函數(shù):  
  41. if($pagenum<=1) return false;  
  42.  
  43. $pagenav.="<li> <a href=javascript:dopage('result','$url?page=1');>首頁</a></li> ";  
  44. if($prepg) $pagenav.="<li> <a href=javascript:dopage('result','$url?page=$prepg');>前頁</a></li> "else $pagenav.=" <li>前頁</li> ";  
  45. if($nextpg) $pagenav.="<li><a href=javascript:dopage('result','$url?page=$nextpg');>后頁</a> </li>"else $pagenav.=" <li>后頁</li> ";  
  46. $pagenav.="<li> <a href=javascript:dopage('result','$url?page=$pagenum');>尾頁</a></li> ";  
  47. $pagenav.="<li>第 $page 頁</li><li>共 $pagenum 頁</li></ul>";  
  48.  
  49. //假如傳入的頁數(shù)參數(shù)大于總頁數(shù),則顯示錯誤信息  
  50. If($page>$pagenum){  
  51. Echo "Error : Can Not Found The page ".$page;  
  52. Exit; //開源軟件:phpfensi.com  
  53. }  
  54. ?></div><div id="results">  
  55. <?php  
  56. echo $pagenav;//輸出分頁導(dǎo)航  
  57. ?>  
  58. </div>  
  59. </body>  
  60. </html> 

css代碼:

 

 
  1. /* CSS Document */ 
  2. /* CSS Document */ 
  3. #result ul li{  
  4. height:20px;  
  5. width:auto;  
  6. display:block;  
  7. color:#999;  
  8. border:1px solid #999;  
  9. float:left;  
  10. list-style:none;  
  11. font-size:12px;  
  12. margin-left:5px;  
  13. line-height:20px;  
  14. vertical-align:middle;  
  15. text-align:center;  
  16. }  
  17. #result ul li a:link{  
  18. width:50px;  
  19. height:20px;  
  20. display:block;  
  21. line-height:20px;  
  22. background:#09C;  
  23. border:1px solid #fff;  
  24. color:#fff;  
  25. text-decoration:none;  
  26. }  
  27. #result ul li a:hover{  
  28. width:50px;  
  29. height:20px;  
  30. display:block;  
  31. line-height:20px;  
  32. background:#09C;  
  33. border:1px solid #fff;  
  34. color:#F60;  
  35. text-decoration:none;  

ajaxpg.js文件,如下:

 

 
  1. // JavaScript Document  
  2. var http_request=false;  
  3. function send_request(url){//初始化,指定處理函數(shù),發(fā)送請求的函數(shù)  
  4. http_request=false;  
  5. //開始初始化XMLHttpRequest對象  
  6. if(window.XMLHttpRequest){//Mozilla瀏覽器  
  7. http_request=new XMLHttpRequest();  
  8. if(http_request.overrideMimeType){//設(shè)置MIME類別  
  9. http_request.overrideMimeType("text/xml");  
  10. }  
  11. }  
  12. else if(window.ActiveXObject){//IE瀏覽器  
  13. try{  
  14. http_request=new ActiveXObject("Msxml2.XMLHttp");  
  15. }catch(e){  
  16. try{  
  17. http_request=new ActiveXobject("Microsoft.XMLHttp");  
  18. }catch(e){}  
  19. }  
  20. }  
  21. if(!http_request){//異常,創(chuàng)建對象實例失敗  
  22. window.alert("創(chuàng)建XMLHttp對象失敗!");  
  23. return false;  
  24. }  
  25. http_request.onreadystatechange=processrequest;  
  26. //確定發(fā)送請求方式,URL,及是否同步執(zhí)行下段代碼  
  27. http_request.open("GET",url,true);  
  28. http_request.send(null);  
  29. }  
  30. //處理返回信息的函數(shù)  
  31. function processrequest(){  
  32. if(http_request.readyState==4){//判斷對象狀態(tài)  
  33. if(http_request.status==200){//信息已成功返回,開始處理信息  
  34. document.getElementById("results").style.display="none";  
  35. document.getElementById(reobj).innerHTML=http_request.responseText;  
  36. }  
  37. else{//頁面不正常  
  38. alert("您所請求的頁面不正常!");  
  39. }  
  40. }  
  41. }  
  42. function dopage(obj,url){  
  43. document.getElementById(obj).innerHTML="<font color='green' font-size='12'>正在讀取數(shù)據(jù)...</font>";  
  44. send_request(url);  
  45. reobj=obj;  
  46. }  

數(shù)據(jù)庫文件,如下:

 

 
  1. -- phpMyAdmin SQL Dump  
  2. -- version 2.8.1  
  3. -- 主機: localhost  
  4. -- 服務(wù)器版本: 5.0.22  
  5. -- PHP 版本: 5.2.12  
  6. --  
  7. -- 數(shù)據(jù)庫: `demo`  
  8. --  
  9. -- --------------------------------------------------------  
  10. --  
  11. -- 表的結(jié)構(gòu) `brand`  
  12. --  
  13. CREATE TABLE `brand` (  
  14. `id` int(7) NOT NULL auto_increment,  
  15. `sp_brand` varchar(255) default NULL,  
  16. PRIMARY KEY (`id`)  
  17. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;  
  18. --  
  19. -- 導(dǎo)出表中的數(shù)據(jù) `brand`  
  20. --  
  21. INSERT INTO `brand` (`id`, `sp_brand`) VALUES (1, 'hello world'),  
  22. (2, '你好'),  
  23. (3, '恩'),  
  24. (4, 'fdsafdsafdsa'),  
  25. (5, 'fdsafdafdsafdas'),  
  26. (6, 'fdsafdsa'),  
  27. (7, 'fdsafdsafdas'),  
  28. (8, '恩'),  
  29. (9, '恩'),  
  30. (10, '恩'),  
  31. (11, '恩11'),  
  32. (12, '恩'),  
  33. (13, '恩'),  
  34. (14, '恩'),  
  35. (15, '恩'),  
  36. (16, '恩'),  
  37. (17, '恩'),  
  38. (18, '恩18');  

下面介紹這些文件的功能

ajaxpg.js:

ajax無刷新核心文件,一般不要去作修改.

index.php:

實現(xiàn)ajax無刷新的文件了,這里調(diào)用了ajaxpg.js文件,配置了mysql用戶密碼,要和自己本地的一致,以及顯示分頁的效果.

page.css:

這是分頁的CSS樣式文件,用來美化的,就不多介紹了.

brand.sql:

這是MYSQL數(shù)據(jù)庫的文件了,進行導(dǎo)入到MYSQL數(shù)據(jù)庫中,同樣,如果不會導(dǎo)入,可以參考PHPfensi.com中如何導(dǎo)入.sql文章即可。

例子非常的簡單大家只要按流程來操作就ok啦,希望這篇文章能幫助大家真正的實現(xiàn)php+ajax無刷新分頁。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阆中市| 山东省| 广饶县| 湄潭县| 民乐县| 保德县| 遵化市| 大厂| 奉贤区| 武汉市| 高邑县| 高阳县| 南乐县| 武隆县| 宽城| 高碑店市| 仙居县| 鄂尔多斯市| 红河县| 龙里县| 彭州市| 科技| 昭平县| 建始县| 海兴县| 天峻县| 高密市| 元江| 郯城县| 额敏县| 滁州市| 禹州市| 新邵县| 进贤县| 灵宝市| 朔州市| 涪陵区| 交口县| 合江县| 丰宁| 襄汾县|