欢迎来到[自学php网] ①群 AG亚游集团

AG亚游集团 > php专栏 > php分页 >

php+ajax实现无刷新数据分页例子

来源:未知 ?? 时间:2015-04-11 15:09?作者:xxadmin

[导读] 无刷新功能我们用到很多很多的,下面我就来给各位介绍一个实例,就是实现php+ajax实现无刷新数据分页了,例子非常的简单大家只要按流程来操作就可以了哦. index.php 文件代码如下: ?php...

无刷新功能我们用到很多很多的,下面我就来给各位介绍一个实例,就是实现php+ajax实现无刷新数据分页了,例子非常的简单大家只要按流程来操作就可以了哦.

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,那么页数就是1。 
  14. $num=3;  /每页显示10条数据 
  15.  
  16. $db=mysql_connect("localhost","root","123456");  /创建数据库连接 
  17. mysql_select_db("demo",$dbor die("数据库链接错误");  /选择要操作的数据库 
  18. mysql_query("set names gbk"); 
  19. /* 
  20. 首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是 
  21. 总数据库除以每页显示的条数,有余进一。 
  22. 也就是说10/3=3.3333=4 有余数就要进一。 
  23. */ 
  24.  
  25. $result=mysql_query("select * from brand"); 
  26. $total=mysql_num_rows($result); /查询所有的数据 
  27.  
  28. $url='test.php';/设置ajax提交页面地址的URL,这里设置成test.php通过ajax把参数传递给test.php再把处理过的内容赋值到本页的div id=result。 
  29. /页码计算 
  30. $pagenum=ceil($total/$num);/获得总页数,也是最后一页 
  31. $page=min($pagenum,$page);/获得首页 
  32. $prepg=$page-1;/上一页 
  33. $nextpg=($page==$pagenum ? 0 : $page+1);/下一页 
  34. $offset=($page-1)*$num/获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。 
  35. $pagenav="<ul>"
  36.  
  37. /开始分页导航条代码: 
  38. $pagenav.="<li>显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录</li><li>共 $total 条记录&nbsp;</li>"
  39.  
  40. /如果只有一页则跳出函数: 
  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. /假如传入的页数参数大于总页数,则显示错误信息 
  50. If($page>$pagenum){ 
  51.  Echo "Error : Can Not Found The page ".$page
  52.  Exit;  /开源软件:phpfensi.com 
  53. ?></div><div id="results"
  54. <?php 
  55.   echo $pagenav;/输出分页导航 
  56. ?> 
  57. </div> 
  58. </body> 
  59. </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. #result ul li a:link{ 
  17. width:50px
  18. height:20px
  19. display:block
  20. line-height:20px
  21. background:#09C
  22. border:1px solid #fff
  23. color:#fff
  24. text-decoration:none
  25. #result ul li a:hover{ 
  26. width:50px
  27. height:20px
  28. display:block
  29. line-height:20px
  30. background:#09C
  31. border:1px solid #fff
  32. color:#F60
  33. text-decoration:none

ajaxpg.js文件如下:

  1. / JavaScript Document 
  2. var http_request=false
  3.   function send_request(url){/初始化,指定处理函数,发送请求的函数 
  4.  http_request=false
  5. /开始初始化XMLHttpRequest对象 
  6. if(window.XMLHttpRequest){/Mozilla浏览器 
  7. http_request=new XMLHttpRequest(); 
  8. if(http_request.overrideMimeType){/设置MIME类别 
  9.   http_request.overrideMimeType("text/xml"); 
  10. else if(window.ActiveXObject){/IE浏览器 
  11. try
  12.  http_request=new ActiveXObject("Msxml2.XMLHttp"); 
  13. }catch(e){ 
  14.  try
  15.  http_request=new ActiveXobject("Microsoft.XMLHttp"); 
  16.  }catch(e){} 
  17.  } 
  18. if(!http_request){/异常,创建对象实例失败 
  19. window.alert("创建XMLHttp对象失败!"); 
  20. return false
  21. http_request.onreadystatechange=processrequest; 
  22. /确定发送请求方式,URL,及是否同步执行下段代码 
  23.  http_request.open("GET",url,true); 
  24. http_request.send(null); 
  25.   } 
  26.   /处理返回信息的函数 
  27.   function processrequest(){ 
  28. if(http_request.readyState==4){/判断对象状态 
  29.   if(http_request.status==200){/信息已成功返回,开始处理信息 
  30.  document.getElementById("results").style.display="none"
  31.  document.getElementById(reobj).innerHTML=http_request.responseText; 
  32. else{/页面不正常 
  33.  alert("您所请求的页面不正常!"); 
  34.   } 
  35.   function dopage(obj,url){ 
  36. document.getElementById(obj).innerHTML="<font color='green' font-size='12'>正在读取数据...</font>"
  37. send_request(url); 
  38. reobj=obj; 

数据库文件如下:

  1. -- phpMyAdmin SQL Dump 
  2. -- version 2.8.1 
  3. -- /wwwaff4phpmyadminaff4net 
  4. --  
  5. -- 主机: localhost 
  6. -- 生成日期: 2010 年 01 月 22 日 14:41 
  7. -- 服务器版本: 5.0.22 
  8. -- PHP 版本: 5.2.12 
  9. --  
  10. -- 数据库: `demo` 
  11. -- 
  12. -- -------------------------------------------------------- 
  13. --  
  14. -- 表的结构 `brand` 
  15. -- 
  16. CREATE TABLE `brand` ( 
  17.   `id` int(7) NOT NULL auto_increment, 
  18.   `sp_brand` varchar(255) default NULL
  19.   PRIMARY KEY  (`id`) 
  20. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ; 
  21. --  
  22. -- 导出表中的数据 `brand` 
  23. -- 
  24. INSERT INTO `brand` (`id`, `sp_brand`) VALUES (1, 'hello world'), 
  25. (2, '你好'), 
  26. (3, '恩'), 
  27. (4, 'fdsafdsafdsa'), 
  28. (5, 'fdsafdafdsafdas'), 
  29. (6, 'fdsafdsa'), 
  30. (7, 'fdsafdsafdas'), 
  31. (8, '恩'), 
  32. (9, '恩'), 
  33. (10, '恩'), 
  34. (11, '恩11'), 
  35. (12, '恩'), 
  36. (13, '恩'), 
  37. (14, '恩'), 
  38. (15, '恩'), 
  39. (16, '恩'), 
  40. (17, '恩'), 
  41. (18, '恩18'); 

下面介绍这些文件的功能

ajaxpg.js:ajax无刷新核心文件,一般不要去作修改.

index.php:实现ajax无刷新的文件了,这里调用了ajaxpg.js文件,配置了mysql用户密码,要和自己本地的一致,以及显示分页的效果.

page.css:这是分页的CSS样式文件,用来美化的,就不多介绍了.

brand.sql:这是MYSQL数据库的文件了,进行导入到MYSQL数据库中,同样,如果不会导入,可以参考PHPfensi.com中如何导入.sql文章即可.

最新文章

点击排行

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号@版权所有AG亚游集团

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

这300多家机构都是山寨组织 千万别上当(附名单) 特斯拉重获索罗斯青睐 持有3500万美元可转债 美商务部长给中国支这招 盟友听到恐怕会非常郁闷 根宝注销西乙队背后:财务私签合同 转让碰骗子 佬牛解盘:曼城主胜作胆 里昂客场不败 探班|北汽男排引新援 京沪收官战为四强练兵 9中1拿5分3失误!这位湖人大将真只能打首发吗 印度抛出全球最大战机订单:110架中85%印度本土生产 半场-米克尔失良机惠家康造威胁 泰达暂0-0鲁能 拼多多将上市 创始人黄峥个人财富或将超过刘强东 910克拉巨钻现身非洲矿区 位列全球第五估价2.5亿 美国现罕见双头蟒蛇 还有两个心脏和两个食道(图)
乐信将于3月20日发布2017财年第四季度和全年财报 特朗普又在推特吹牛 这次闹出人命(图) 德甲名将:1冠军不一定归拜仁 已找到拜仁弱点 沙波瓦诺夫将成新加拿大NO.1 坦言一切来得太快 邓洪挂任四川巴中副市长 之前在工行任职(简历) 媒体谈18元的烤鸭:是否安全不该让消费者来猜 日本男子街头裸奔被捕 自称“天气太热了” 陌陌周五收盘大涨逾17% 将收购探探100%股权 竞彩大势:马竞技客场防平 阿森纳双杀米兰 蓝色光标:不存在大规模裁员 将按法规处理涉事员工 韩海关搜查大韩航空总部 调查总裁家族逃税嫌疑 世界杯填表项只有中国台湾 台当局怂了:心好累
天宫一号“回家”为何充满悬念?热层大气预报存误差 夫妻“黄播”每天获利约2千元 200余家直播平台被查 文在寅当选总统前夜超速被拍 自掏腰包交罚单 欧盟:对中国无缝钢管等产品征收反倾销税延长5年 名宿痛批曼联球星:穆帅1.3亿买来两个自大狂 牛汇:4月9日现货黄金白银外汇短线交易策略 大学生被学长骗去勤工俭学 没开车驾照被记23分 伊朗石油部:德黑兰准备与中石油建立合作 拜仁主席:换我绝不买C罗 惊讶尤文会买33岁的他 没钱怎么创业 2017做什么生意有前景 小投资暴利 开什么店比较有市场 AG亚游集团