`
一湖碧波
  • 浏览: 54594 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

php的ajax分页

    博客分类:
  • php
阅读更多

基本的AJAX开发框架:

var http_request=false;
  function send_request(url){//初始化,指定处理函数,发送请求的函数
    http_request=false;
    //开始初始化XMLHttpRequest对象
    if(window.XMLHttpRequest){//Mozilla浏览器
     http_request=new XMLHttpRequest();
     if(http_request.overrideMimeType){//设置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){//异常,创建对象实例失败
     window.alert("创建XMLHttp对象失败!");
     return false;
    }
    http_request.onreadystatechange=processrequest;
    //确定发送请求方式,URL,及是否同步执行下段代码
    http_request.open("GET",url,true);
    http_request.send(null);
  }
  //处理返回信息的函数
  function processrequest(){
   if(http_request.readyState==4){//判断对象状态
     if(http_request.status==200){//信息已成功返回,开始处理信息
      document.getElementById(reobj).innerHTML=http_request.responseText;
     }
     else{//页面不正常
      alert("您所请求的页面不正常!");
     }
   }
  }
  function dopage(obj,url){
   document.getElementById(obj).innerHTML="正在读取数据...";
   send_request(url);
   reobj=obj;
   }

内容我放在一个div中显示,当翻页动作产生时,利用AJAX更新DIV达到翻页效果这是内容显示页面代码:

<?php
header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码
?>
<html>
<head>
<title>ajax分页演示</title>
<script language="javascript" src="ajaxpg.js"></script>
</head>
<body>
<div id="result">
<?php
$page=isset($_GET['page'])?intval($_GET['page']):1;        //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10;                                      //每页显示10条数据

$db=mysql_connect("localhost","root","7529639");           //创建数据库连接
mysql_select_db("cr_download");                 //选择要操作的数据库

/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据库除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/

$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //查询所有的数据

$url='test.php';//获取本页URL

//页码计算
$pagenum=ceil($total/$num);                                    //获得总页数,也是最后一页
$page=min($pagenum,$page);//获得首页
$prepg=$page-1;//上一页
$nextpg=($page==$pagenum ? 0 : $page+1);//下一页
$offset=($page-1)*$num;                                        //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。

//开始分页导航条代码:
$pagenav="显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录,共 $total 条记录 ";

//如果只有一页则跳出函数:
if($pagenum<=1) return false;

$pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> ";
if($prepg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$prepg');>前页</a> "; else $pagenav.=" 前页 ";
if($nextpg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$nextpg');>后页</a> "; else $pagenav.=" 后页 ";
$pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> ";
$pagenav.="</select> 页,共 $pagenum 页";

//假如传入的页数参数大于总页数,则显示错误信息
If($page>$pagenum){
       Echo "Error : Can Not Found The page ".$page;
       Exit;
}

$info=mysql_query("select * from cr_userinfo limit $offset,$num");   //获取相应页数所需要显示的数据
While($it=mysql_fetch_array($info)){
       Echo $it['username'];
       echo "<br>";
}                                                              //显示数据
  echo"<br>";
  echo $pagenav;//输出分页导航

?>
</div>
</body>
</html>

 

翻页的关键就在于翻页时调用dopage()函数,接着利用回调信息来更新div中的内容。服务器端核心代码:

<?php
header("Content-type: text/html;charset=GBK");//输出编码,避免中文乱码
$page=isset($_GET['page'])?intval($_GET['page']):1;        //这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10;                                      //每页显示10条数据

$db=mysql_connect("localhost","root","7529639");           //创建数据库连接
mysql_select_db("cr_download");                 //选择要操作的数据库

/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据库除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/

$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //查询所有的数据

$url='test.php';//获取本页URL

//页码计算
$pagenum=ceil($total/$num);                                    //获得总页数,也是最后一页
$page=min($pagenum,$page);//获得首页
$prepg=$page-1;//上一页
$nextpg=($page==$pagenum ? 0 : $page+1);//下一页
$offset=($page-1)*$num;                                        //获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。

//开始分页导航条代码:
$pagenav="显示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 条记录,共 $total 条记录 ";

//如果只有一页则跳出函数:
if($pagenum<=1) return false;

$pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> ";
if($prepg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$prepg');>前页</a> "; else $pagenav.=" 前页 ";
if($nextpg) $pagenav.=" <a href=javascript:dopage('result','$url?page=$nextpg');>后页</a> "; else $pagenav.=" 后页 ";
$pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> ";
$pagenav.="</select> 页,共 $pagenum 页";

//假如传入的页数参数大于总页数,则显示错误信息
If($page>$pagenum){
       Echo "Error : Can Not Found The page ".$page;
       Exit;
}

$info=mysql_query("select * from cr_userinfo limit $offset,$num");   //获取相应页数所需要显示的数据
While($it=mysql_fetch_array($info)){
       Echo $it['username'];
       echo "<br>";
}                                                              //显示数据
  echo"<br>";
  echo $pagenav;//输出分页导航
  
?> 

 

转自:http://bbs.phpchina.com/thread-13300-1-1.html

 

 

 

 

 

分享到:
评论

相关推荐

    php ajax 分页源代码

    本资源提供了一个PHP AJAX分页的源代码,它实现了无刷新分页功能,提高了用户体验并减轻了服务器压力。下面我们将详细探讨PHP、AJAX以及如何结合两者实现分页功能。 首先,PHP(Hypertext Preprocessor)是一种广泛...

    PHP ajax 分页代码类.zip

    "PHP AJAX 分页代码类"是一个专门为PHP设计的类,它允许开发者通过AJAX无刷新的方式实现动态分页。下面我们将详细探讨这个类的原理、使用方法以及其优点。 首先,让我们理解分页的基本概念。分页是将大量数据分成多...

    PHP ajax 分页代码类

    本PHP AJAX分页代码类的设计目标是简化分页实现,提高性能,避免直接处理SQL,减少代码耦合度。 首先,让我们了解什么是AJAX(Asynchronous JavaScript and XML)。AJAX是一种在无需刷新整个页面的情况下,能够更新...

    PHPAjax 分页效果特别实用

    本主题将深入探讨“PHPAjax 分页效果”,结合Jquery的Ajax功能,实现动态加载数据,无需刷新整个页面即可完成数据的翻页。 **一、PHP分页原理** PHP分页主要是通过计算总页数,然后根据用户选择的页码返回对应的...

    php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页

    php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax...

    ajax php 分页功能完整

    **Ajax PHP 分页功能完整详解** 在Web开发中,分页功能是不可或缺的一部分,尤其是在处理大量数据时。AJAX(Asynchronous JavaScript and XML)技术与PHP的结合,可以实现无刷新分页,提高用户体验。本教程将深入...

    php+ajax的分页

    这里的“php+ajax的分页”指的是利用PHP作为服务器端脚本语言处理数据,而通过AJAX实现页面内容的无刷新更新,以提供用户更流畅的浏览体验。以下是对这个主题的详细讲解: 首先,我们来看`index.php`,这通常是前端...

    php经典多样式分页类,附带Ajax分页

    总结来说,"php经典多样式分页类,附带Ajax分页"是一种高效处理大量数据的方式,它结合了PHP的强大后端处理能力和Ajax的无刷新用户体验。通过理解并应用这个分页类,开发者能够创建出更用户友好的Web应用程序。而...

    超强php分页打包 通用分页 万能分页 ajax分页 google分页

    本压缩包“超强php分页打包 通用分页 万能分页 ajax分页 google分页”提供了一系列的分页解决方案,包括了基本的PHP分页、通用的分页实现、以及结合AJAX技术的动态分页,旨在满足各种项目需求。下面将详细介绍这些...

    php ajax分页

    在网页开发中,PHP与AJAX的结合常常用于实现动态分页功能,这不仅可以提高用户体验,还能减轻服务器的负担。本篇文章将详细讲解如何利用PHP和AJAX来创建一个无错误、UTF-8编码的数据库分页系统。 首先,我们需要...

    PHP ajax 分页类代码

    本文将深入解析一个PHP AJAX分页类的代码,探讨其工作原理和主要功能。 首先,该类并不处理SQL查询,而是专注于分页逻辑的实现,这使得它具有较高的灵活性和可复用性。开发者可以根据自己的数据库查询语句与这个...

    ajax分页 php

    ajax分页 phpajax分页

    PHP+AJAX实现 分页

    在这个特定的案例中,"PHP+AJAX实现分页"是一个常见的需求,它允许用户在不刷新整个页面的情况下加载更多数据,提升用户体验。下面我们将详细探讨这一主题。 首先,分页是一种组织大量数据的方法,它将数据分割成可...

    php完美分页类支持ajax等多种分页模式

    该分页系他人书写,本人修改! 附带详细使用方法 以及函数说明!可直接用于php项目 !支持多种分页方式!

    ajax分页demo

    【Ajax分页技术详解】 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。在Web开发中,Ajax分页是实现数据展示时提高用户体验的有效手段,它允许用户在不...

    php ajax mysql 点击加载更多 分页

    在网页开发中,"php ajax mysql 点击加载更多 分页" 是一种常见的实现大量数据展示的技术组合。这种技术可以提升用户体验,避免一次性加载所有数据导致页面加载速度慢或者浏览器卡顿。以下是对这个主题的详细解释: ...

    jquery+ajax分页

    通过以上步骤,我们可以实现一个基本的jQuery + AJAX分页功能。在实际项目中,根据需求可能还需要考虑更多细节,如分页大小的调整、搜索和排序功能的集成等。总的来说,jQuery与AJAX的结合极大地提高了Web应用的交互...

    php加载和生成json和生成xml文件,并带有ajax分页效果,带图带数据库

    至于"thinkphp仿百度分页+分页样式.rar"和"Thinkphp原创Ajax分页加搜索查询.zip",它们可能是包含ThinkPHP框架的分页功能和样式的代码资源,帮助开发者快速实现分页功能,包括搜索查询和样式美化。 最后,提到的"QQ...

    tp3.2+ajax无刷新分页

    6. **项目实例**:除了理论知识,实际的代码实例可以让开发者更好地理解和应用这些概念,通过阅读和调试代码,可以加深对ThinkPHP 3.2和Ajax分页的理解。 7. **用户体验**:无刷新分页提升了用户体验,避免了用户...

Global site tag (gtag.js) - Google Analytics