Ajax+PHP分页演示,带源码下载!!
时间:2006-12-04
来源:互联网
代码:
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;
}
代码:
<?phpheader("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>
代码:
<?phpheader("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;//输出分页导航
?>

2006-12-3 19:42
开始翻页

2006-12-3 19:42
翻页完成

2006-12-3 19:42, 下载次数: 4249
源代码
作者: leehui1983 发布时间: 2006-12-03
作者: 王洋姜 发布时间: 2006-12-03
作者: Nickboy 发布时间: 2006-12-03
作者: sufing0x1 发布时间: 2006-12-04
记得有人说过,是在AJAX中的,说是为了让你能看得清效果特意加上去了。希望有人知道~
作者: sufing0x1 发布时间: 2006-12-04
作者: 唐员外 发布时间: 2006-12-04
作者: leehui1983 发布时间: 2006-12-04
作者: leehui1983 发布时间: 2006-12-05


作者: fengyun 发布时间: 2006-12-05



作者: �����i�i 发布时间: 2006-12-11
作者: leehui1983 发布时间: 2006-12-15
作者: bighead 发布时间: 2006-12-21
作者: geluli 发布时间: 2006-12-21
作者: leehui1983 发布时间: 2006-12-21
作者: yemao 发布时间: 2007-01-09
http://www.douwo.cn/pai.php
作者: 风卷残云 发布时间: 2007-01-14
作者: maoli0366 发布时间: 2007-01-14

不好用呀!
作者: 特蓝克斯 发布时间: 2007-01-14
作者: pan_ivan 发布时间: 2007-01-19
作者: Poon 发布时间: 2007-01-19
作者: kenus 发布时间: 2007-02-07
作者: caicaiphper 发布时间: 2007-02-08
作者: pierochang 发布时间: 2007-02-15
作者: pierochang 发布时间: 2007-02-15
作者: cxc0378 发布时间: 2007-02-15
作者: yyb 发布时间: 2007-03-02
作者: louis75168611 发布时间: 2007-03-26
作者: xidear 发布时间: 2007-04-27
作者: scz2011 发布时间: 2007-04-28


作者: heixiake 发布时间: 2007-05-03
学习了~
作者: fly1983 发布时间: 2007-05-07
作者: gozone 发布时间: 2007-05-09
为什么不把查询的数据用XML传递。
作者: cqx2004 发布时间: 2007-05-15
大侠~
作者: 木�^ 发布时间: 2007-05-15
作者: yiqieqie 发布时间: 2007-05-21


作者: rednetcn 发布时间: 2007-06-05
作者: jacuro 发布时间: 2007-06-05
作者: dzjzmj 发布时间: 2007-06-05
作者: hurrayboy 发布时间: 2007-06-28
作者: yanglish 发布时间: 2007-07-03
作者: acbad79 发布时间: 2007-07-12
不过在建立conn时时,最好加上 mysql_query("SET NAMES gbk"); 否者容易乱码.
[ 本帖最后由 poppub 于 2007-8-24 16:31 编辑 ]
作者: poppub 发布时间: 2007-08-24
下次..我也带点原创撒..要不也太对不起观众了
作者: 疯子-斯 发布时间: 2007-08-27
在传递参数上的改变 ajax 应用都一样 很简单的
作者: makang1223 发布时间: 2007-09-11
作者: yuanjing_119 发布时间: 2007-09-12


作者: ylhp 发布时间: 2007-09-14
作者: lin_chaoqi 发布时间: 2007-09-18
作者: waterzhz 发布时间: 2007-09-20
但是在进行如下操作,就会浏览器报错 错误: 'reobj' 未定义
打开测试页,翻到下一页,然后刷新浏览器,再往下翻页的时候,浏览器就报错了!
作者: oklilei 发布时间: 2007-10-11
作者: cgp2008 发布时间: 2007-10-12
作者: likai321 发布时间: 2007-10-13
作者: likai321 发布时间: 2007-10-15
作者: heixiake 发布时间: 2007-11-24
作者: rebill 发布时间: 2007-11-24




作者: lxydyx 发布时间: 2008-01-16
但是我们总得让用户能够分页显示吧,那最后您的代码是不是就不能用了。
?????????????????
作者: [email protected] 发布时间: 2008-02-23
作者: learsu 发布时间: 2008-02-25



作者: luzhou 发布时间: 2008-02-25


作者: ct_174880859 发布时间: 2008-02-27
作者: [email protected] 发布时间: 2008-02-27
作者: sdltrados 发布时间: 2008-04-03
作者: idea2002 发布时间: 2008-04-14



作者: 马一鸣 发布时间: 2008-05-08

作者: atree1984 发布时间: 2008-05-12
作者: wydycrtd 发布时间: 2008-05-16



大力支持
[ 本帖最后由 ufo 于 2008-5-28 08:43 编辑 ]
作者: huaganshang 发布时间: 2008-05-26
还有一种设计方式就是:设计前台的js分页链接,当触发事件的时候向服务端加载对应的数据,这个数据使用xml或者json封装,然后在客户端用js解析,再利用dom写入div,ajax存在的问题还有导航与刷新问题,老实说,利用hash解决刷新问题一点也不好,因为加载慢点的话,可能数据加载不上来,导航是用iframe框架。
作者: ufo 发布时间: 2008-05-28

作者: FreeLiver 发布时间: 2008-06-09




作者: wlxm007 发布时间: 2008-06-10
//如果只有一页则跳出函数:
if($pagenum<=1) return false; 这一句很容易让开始调试的人只看到一片空白
始终显示有链接的首页和尾页也有点晕,再判断一下
if($page!=1) $pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> "; else $pagenav.=" 首页 ";
//$pagenav.=" <a href=javascript:dopage('result','$url?page=1');>首页</a> ";
if($page!=$pagenum) $pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> "; else $pagenav.=" 尾页 ";
//$pagenav.=" <a href=javascript:dopage('result','$url?page=$pagenum');>尾页</a> ";
作者: cybmm 发布时间: 2008-06-24
作者: onlyfu 发布时间: 2008-06-24


作者: hklcf 发布时间: 2008-06-26
作者: simore 发布时间: 2008-07-02
//确定发送请求方式,URL,及是否同步执行下段代码
http_request.open("GET",url,true);
http_request.send(null);
里面得 url 怎么添啊?



作者: yeahdwb 发布时间: 2008-07-08
但是在进行如下操作,就会浏览器报错 错误: 'reobj' 未定义
打开测试页,翻到下一页,然后刷新浏览器,再往下翻页的时候,浏览器就报错了!
作者: 87786880 发布时间: 2008-07-13
作者: 87786880 发布时间: 2008-07-13


作者: 105644107 发布时间: 2008-07-16
作者: syweiyan 发布时间: 2008-07-21
作者: rebill 发布时间: 2008-07-21
作者: ty 发布时间: 2009-05-20
作者: ouhui818 发布时间: 2010-05-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28