php ajax分页代码

提供一款完美的php ajax分页程序,如果你正在愁这个就进来看看吧,好了费话不说多喜欢ajax朋友来吧,代码如下:

  1. <?php
  2. header("content-type: text/html;charset=gbk");//输出编码,避免中文乱码
  3. ?>
  4. <html>
  5. <head>
  6. <title>ajax分页演示</title>
  7. <script language="javascript" >
  8. var http_request=false;
  9. function send_request(url){//初始化,指定处理函数,发送请求的函数
  10. http_request=false;
  11. //开始初始化xmlhttprequest对象
  12. if(window.xmlhttprequest){//mozilla浏览器//开源代码phpfensi.com
  13. http_request=new xmlhttprequest();
  14. if(http_request.overridemimetype){//设置mime类别
  15. http_request.overridemimetype("text/xml");
  16. }
  17. }
  18. else if(window.activexobject){//ie浏览器
  19. try{
  20. http_request=new activexobject("msxml2.xmlhttp");
  21. }catch(e){
  22. try{
  23. http_request=new activexobject("microsoft.xmlhttp");
  24. }catch(e){}
  25. }
  26. }
  27. if(!http_request){//异常,创建对象实例失败
  28. window.alert("创建xmlhttp对象失败!");
  29. return false;
  30. }
  31. http_request.onreadystatechange=processrequest;
  32. //确定发送请求方式,url,及是否同步执行下段代码
  33. http_request.open("get",url,true);
  34. http_request.send(null);
  35. }
  36. //处理返回信息的函数
  37. function processrequest(){
  38. if(http_request.readystate==4){//判断对象状态
  39. if(http_request.status==200){//信息已成功返回,开始处理信息
  40. document.getelementbyid(reobj).innerhtml=http_request.responsetext;
  41. }
  42. else{//页面不正常
  43. alert("您所请求的页面不正常!");
  44. }
  45. }
  46. }
  47. function dopage(obj,url){
  48. document.getelementbyid(obj).innerhtml="<font color='green' font-size='12'>正在读取数据...</font>";
  49. send_request(url);
  50. reobj=obj;
  51. }
  52. </script>
  53. <style>
  54. /* css document */
  55. #result ul li{
  56. height:20px;
  57. width:auto;
  58. display:block;
  59. color:#999;
  60. border:1px solid #999;
  61. float:left;
  62. list-style:none;
  63. font-size:12px;
  64. margin-left:5px;
  65. line-height:20px;
  66. vertical-align:middle;
  67. text-align:center;
  68. }
  69. #result ul li a:link{
  70. width:50px;
  71. height:20px;
  72. display:block;
  73. line-height:20px;
  74. background:#09c;
  75. border:1px solid #fff;
  76. color:#fff;
  77. text-decoration:none;
  78. }
  79. #result ul li a:hover{
  80. width:50px;
  81. height:20px;
  82. display:block;
  83. line-height:20px;
  84. background:#09c;
  85. border:1px solid #fff;
  86. color:#f60;
  87. text-decoration:none;
  88. }
  89. </style>
  90. </head>
  91. <body>
  92. <div >
  93. <?php
  94. $page=isset($_get['page'])?intval($_get['page']):1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
  95. $num=10; //每页显示10条数据
  96. $db=mysql_connect("localhost","root",""); //创建数据库教程连接
  97. mysql_select_db("test"); //选择要操作的数据库
  98. /*
  99. 首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
  100. 总数据库除以每页显示的条数,有余进一。
  101. 也就是说10/3=3.3333=4 有余数就要进一。
  102. */
  103. $result=mysql_query("select * from users");
  104. $total=mysql_num_rows($result); //查询所有的数据
  105. $url='test1.php';//获取本页url
  106. //页码计算
  107. $pagenum=ceil($total/$num); //获得总页数,也是最后一页
  108. $page=min($pagenum,$page);//获得首页
  109. $prepg=$page-1;//上一页
  110. $nextpg=($page==$pagenum ? 0 : $page+1);//下一页
  111. $offset=($page-1)*$num; //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。
  112. $pagenav="<ul>";
  113. //开始分页导航条代码:
  114. $pagenav.="<li>显示第 <b>".($total?($offset+1):0)."</b>-<b>".min($offset+10,$total)."</b> 条记录</li><li>共 $total 条记录&nbsp;</li>";
  115. //如果只有一页则跳出函数:
  116. if($pagenum<=1) return false;
  117. $pagenav.="<li> <a href=javascript:dopage('result','$url?page=1');>首页</a></li> ";
  118. if($prepg) $pagenav.="<li> <a href=javascript:dopage('result','$url?page=$prepg');>前页</a></li> "; else $pagenav.=" <li>前页</li> ";
  119. if($nextpg) $pagenav.="<li><a href=javascript:dopage('result','$url?page=$nextpg');>后页</a> </li>"; else $pagenav.=" <li>后页</li> ";
  120. $pagenav.="<li> <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a></li> ";
  121. $pagenav.="<li>第 $page 页</li><li>共 $pagenum 页</li></ul>";
  122. //假如传入的页数参数大于总页数,则显示错误信息
  123. if($page>$pagenum){
  124. echo "error : can not found the page ".$page;
  125. exit;
  126. }
  127. $info=mysql_query("select * from users limit $offset,$num"); //获取相应页数所需要显示的数据
  128. while($it=mysql_fetch_array($info)){
  129. echo $it['u_name'];
  130. echo "<br>";
  131. } //显示数据
  132. echo"<br>";
  133. echo $pagenav;//输出分页导航
  134. ?>
  135. </div>
  136. </body>
  137. </html>