当前位置:首页 > PHP教程 > php应用 > 列表

php ajax 无刷新翻页实现代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-06 14:19:37 浏览: 评论:0 

下面只是一个测试,在实际应用中,可能这种方法会比较占系统资源,不建意利用这样的方法处理分页效果,代码如下:

  1. var http_request=false;  
  2. function send_request(url){//初始化,指定处理函数,发送请求的函数  
  3. http_request=false;  
  4. //开始初始化xmlhttprequest对象  
  5. if(window.xmlhttprequest){//mozilla浏览器  
  6. http_request=new xmlhttprequest();  
  7. if(http_request.overridemimetype){//设置mime类别  
  8. http_request.overridemimetype("text/xml");  
  9. }  
  10. }  
  11. else if(window.activexobject){//ie浏览器  
  12. try{  
  13. http_request=new activexobject("msxml2.xmlhttp");  
  14. }catch(e){  
  15. try{  
  16. http_request=new activexobject("microsoft.xmlhttp");  
  17. }catch(e){}  
  18. }  
  19. }  
  20. if(!http_request){//异常,创建对象实例失败  
  21. window.alert("创建xmlhttp对象失败!");  
  22. return false;  
  23. }  
  24. http_request.onreadystatechange=processrequest;  
  25. //确定发送请求方式,url,及是否同步执行下段代码  
  26. http_request.open("get",url,true);  
  27. http_request.send(null);  
  28. }  
  29. //处理返回信息的函数  
  30. function processrequest(){  
  31. if(http_request.readystate==4){//判断对象状态  
  32. if(http_request.status==200){//信息已成功返回,开始处理信息  
  33. document.getelementbyid('result').innerhtml=http_request.responsetext;  
  34. }  
  35. else{//页面不正常  
  36. alert("您所请求的页面不正常!");  
  37. }  
  38. }  
  39. }  
  40. function dopage(obj,url){  
  41. document.getelementbyid(obj).innerhtml="正在读取数据...";  
  42. send_request(url);  
  43. reobj=obj;  

php html处理代码:

  1. <div id="result">  
  2. <?php  
  3. $classid=$_request['classid'];  
  4. //注意有个问题,就是数据如果总数小于每页数据不能显示 
  5.  
  6. $page=isset($_get['page'])?intval($_get['page']):1; //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。  
  7. $num=10; //每页显示10条数据 
  8.  
  9. require "conn.php";  
  10. mysql教程_select_db($database_lr$lr);  
  11. /*  
  12. 首先咱们要获取数据库教程中到底有多少数据,才能判断具体要分多少页,具体的公式就是  
  13. 总数据库除以每页显示的条数,有余进一。  
  14. 也就是说10/3=3.3333=4 有余数就要进一。  
  15. */ 
  16.  
  17. $result=mysql_query("select * from blog where classid='$classid'");  
  18. $total=mysql_num_rows($result); //查询所有的数据 
  19.  
  20. $url='show_main.php';//获取本页url 
  21.  
  22. //页码计算  
  23. $pagenum=ceil($total/$num); //获得总页数,也是最后一页  
  24. $page=min($pagenum,$page);//获得首页  
  25. $prepg=$page-1;//上一页  
  26. $nextpg=($page==$pagenum ? 0 : $page+1);//下一页  
  27. $offset=($page-1)*$num//获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。 
  28.  
  29. //开始分页导航条代码:  
  30. $pagenav=$page."/".$pagenum."&nbsp;<b>&nbsp;".($total?($offset+1):0)."</b>-<b>".min($offset+10,$total)."</b> &nbsp;total $total &nbsp;"
  31.  
  32. //第一页:  
  33. if($page==1) {  
  34. $pagenav.="first&nbsp;";  
  35. }  
  36. else  
  37. {$pagenav.="<a href=网页特效:dopage('result','$url?classid=$classid&page=1');>first</a>&nbsp;";}  
  38. if($prepg$pagenav.=" <a href=javascript:dopage('result','$url?classid=$classid&page=$prepg');>prev</a>&nbsp;"else $pagenav.=" prev&nbsp;";  
  39. if($nextpg$pagenav.=" <a href=javascript:dopage('result','$url?classid=$classid&page=$nextpg');>next</a> "else $pagenav.=" next ";  
  40. if ($pagenum>$page){  
  41. $pagenav.="&nbsp;<a href=javascript:dopage('result','$url?classid=$classid&page=$pagenum');>last</a> ";  
  42. }  
  43. else{  
  44. $pagenav.="&nbsp;last";  
  45. }  
  46. $pagenav.="&nbsp;total page $pagenum "
  47.  
  48. //假如传入的页数参数大于总页数,则显示错误信息  
  49. if($page>$pagenum){  
  50. echo "error : can not found the page ".$page;  
  51. exit;  
  52.  
  53. $info=mysql_query("select * from blog where classid='$classid' order by id desc limit $offset,$num"); //获取相应页数所需要显示的数据 
  54.  
  55. if ($total>0)  
  56. {  
  57. while($it=mysql_fetch_array($info)){  
  58. echo $it['title']."&nbsp;(".$it['updatetime'].")";  
  59. echo "<br>";  
  60. echo $it['content'];  
  61. echo "<br>";  
  62. //显示数据  
  63. echo"<br>";  
  64. echo $pagenav;//输出分页导航  
  65. }  
  66. else  
  67. {  
  68. echo"no comment.";  
  69. }  
  70. ?>  
  71. </div> 

Tags: php ajax 无刷新翻页

分享到: