宝哥软件园

PHP Ajax实现无刷新分页功能详解[附演示源代码下载]

编辑:宝哥软件园 来源:互联网 时间:2021-09-04

本文举例说明了PHP Ajax实现的免刷新分页功能。分享给大家参考,如下:

注意:本文中使用的一些类库的源代码可以在上一篇文章中找到。我将指出本文中的链接。为了缩短文章长度,请理解阅读带来的不便。

本文阐述了Ajax无刷新分页的实现、实现原理、代码显示和代码下载。

这里需要解释一些知识:

1.Ajax不刷新页面的好处:提供良好的客户体验,通过Ajax在后台从数据库获取数据并显示,禁止等待加载页面的空白状态;

2.所以,Ajax无刷新页面在动态页面上运行(。php)?或者静态页面(。html/。htm/。shtml)?答案是:静态页面;

3.实现原理:将前端JS脚本程序与Ajax相结合,获取动态页面返回的数据并显示。

好,让我们解释下面的代码:

由于它运行在静态页面上,我们首先创建一个静态的HTML页面。index.html的代码列表如下。

index.html

!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' ' http://www . w3 . org/TR/HTML 4/loose . DTD ' htmlhearteta http-equiv=' Content-Type ' Content=' text/HTML;charset=UTF-8 '脚本类型=' text/JavaScript ' src=' http : js/Ajax . js '/脚本!-加载Ajax类库- titleAjax实现无刷新页面/title style type=' text/CSS ' body { font-size :12 px;}/style/headbody div id=数据加载中的“fpage”./div/body/html代码列表,我们加载了一个Ajax类库,可以在//www . JB 51 . net/article/82066 . htm文章中找到(带用法方法)

在这个静态页面中,只有“数据加载.”将被显示,并且没有数据。此时,我们需要一个JS脚本来通过Ajax从数据库中获取数据。JS脚本如下:

脚本类型=' text/JavaScript '/* * * set page(URL)根据URL * @param int pageNum页码* @返回字符串*/varcache=newarray(),从article.php获取数据;//cache变量,当数据已经被访问时,将其放入缓存中以加快访问速度。函数set page(page num){ var FP page=document . getelementbyid(' FP page ');//获取fpage对象//如果缓存中有数据,直接从缓存中读取;如果没有数据,则从数据库中读取数据并将其存储在缓存中,如果(类型为(cache[page num])==' undefined '){ var Ajax=Ajax();ajax.get('article.php?page=' pageNum,function(data){ FP age . innerHTMl=data;fpage对象的内容是cache[pageNum]=取自article.php的数据;})} else { FP age . innerHTMl=cache[PageNum];} } SetPage(1);//默认情况下执行/编写脚本。仔细阅读上面的代码,你会发现以下现象:

1.setPage(pageNum)是一个JS函数接口,用于从数据库中提取数据。2.Ajax是通过article.php文件获取数据;3、article.php?Page=xx,其中xx为待获取的页码数据,setPage(1):获取第一页数据;设定页(2):是获取第2页的数据;SetPage(100):获取第100页的数据;那么,如何从article.php文件中获取数据呢?请参见下面的代码列表。

article.php

?PHP/* * * * * id : $ article . PHP *作者Lee。*最后修改$ date : 2012-01-21 16:53:05 $ */require _ once '。/config . Inc . PHP ';$m=新模型();$ page=new AJaxpage($ m-total(' article '),20);//$m-total('article ')获取文章表中的记录数;10为每页显示十个$ result=$ m-fetchall ('article ',' * ',',',$ page-limit);//取出数据,_,很方便,echo ' table align=' center ' border=' 1 ' width=' 1100 ' style=' border-collapse : collapse;font-size :14 px;bordercolor=' # 666Echo 'captionh1华强电子网络信息/h1/caption ';回声' tr高度=' 25 ' ThID/THTHTHTItle/THTHTHAUTHOR/THTHSOURce/THTHTHDATE/th/tr ';foreach($ result as $ v){ echo ' tr height=' 21 ' TD align=' center ' { $ v[' id ']}/tdtd { $ v[' title ']}/tdtd align=' center ' { $ v[' author ']}/tdtd align=' center ' { $ v[' source ']}/tdtd align=' center ' { $ v[' date ']}/TD/tr ';} echo ' trtd align=' right ' col span=' 5 '。$ page-FP page()。/TD/tr ';echo '/table ';article.php连接的数据是前一篇文章从华强电子网抓取的信息数据。因为数据比较大,所以将article.sql文件附加到代码包下载中,供大家测试。

静态页面index.html上显示的数据是article.php文件中的回声代码。

代码文件中的config.inc.php文件主要定义了一些常量,如数据库用户名、数据库密码、主机、数据库连接类库(Model.class.php)和数据库操作类库(Model.class.php)。使用方法请参考文//www . JB 51 . net/article/82063 . htm。

程序渲染:

下图标出了注意的地方。

这样,Ajax无刷新分页就完成了。节目中还有一个ajaxPage.class.php没有说明。事实上,ajaxPage类库的使用方式与一般分页类库相同。

那就是:

$page=new ajaxPage(记录总数、每页显示数);请下载代码阅读详情。

点击这里下载完整的代码。

更多对PHP相关内容感兴趣的读者可以查看本网站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》、《php常见数据库操作技巧汇总》、0103010

希望本文对PHP编程有所帮助。

更多资讯
游戏推荐
更多+