php+ajax+jquery实现点击加载更多内容


Posted in Javascript onMay 03, 2015

我们在一些微博网站上可以碰到这样的应用,微博内容列表没有使用分页条,而是一次加载一定数量的记录显示在列表页,当用户浏览到列表页底部时,可以通过单击“查看更多”来加载更多记录。本文我将结合jQuery和PHP给大家讲述如何实现这种应用。

基本原理:页面载入时,jQuery向后台请求数据,PHP通过查询数据库将最新的几条记录显示在列表页,在列表页的底部有个“更多”链接,通过触发该链接,向服务端发送Ajax请求,后台PHP程序得到请求参数,并作出相应,获取数据库相应的记录并以JSON的形式返回给前台页面,前台页面jQuery解析JSON数据,并将数据追加到列表页。其实就是Ajax分页效果。

首先要引入jquery库和jquery.more.js插件,jquery.more.js已经将许多功能都封装好了,并提供了参数配置的功能。

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.more.js"></script>

xhtml结构如下:

<div id="more"> 
   <div class="single_item"> 
      <div class="element_head"> 
        <div class="date"></div> 
        <div class="author"></div> 
      </div> 
      <div class="content"></div> 
   </div> 
   <a href="javascript:;" class="get_more">::点击加载更多内容::</a> 
</div>

值得一提的是,样式single_item,get_more是和jquery.more.js插件关联的,你也可以取另外的class名字,但是在配置的时候一定要将对应的class写上。

CSS

#more{margin:10px auto;width: 560px; border: 1px solid #999;}        
.single_item{padding: 20px; border-bottom: 1px dotted #d3d3d3;} 
.author{position: absolute; left: 0px; font-weight:bold; color:#39f} 
.date{position: absolute; right: 0px; color:#999} 
.content{line-height:20px; word-break: break-all;} 
.element_head{width: 100%; position: relative; height: 20px;} 
.get_more{margin:10px; text-align:center} 
.more_loader_spinner{width:20px; height:20px; margin:10px auto; background: url(loader.gif) 
 no-repeat;}

以上CSS是本例中定制的,当然,大家可以在实际项目中定制不同的样式。注意,more_loader_spinner是定义加载动画图片的。

jQuery

$(function(){ 
  $('#more').more({'address': 'data.php'}) 
});

使用很简单,配置了后台地址:data.php,来看data.php是怎么处理数据的。

PHP

data.php链接数据库,本例使用本站文章相同的数据表。

require_once('connect.php'); 
 
$last = $_POST['last']; 
$amount = $_POST['amount']; 
 
$user = array('demo1','demo2','demo3','demo3','demo4'); 
$query=mysql_query("select * from say order by id desc limit $last,$amount"); 
while ($row=mysql_fetch_array($query)) { 
  $sayList[] = array( 
    'content'=>$row['content'], 
    'author'=>$user[$row['userid']], 
    'date'=>date('m-d H:i',$row['addtime']) 
   ); 
} 
echo json_encode($sayList);

data.php接收前台页面提交过来的两个参数,$_POST['last']即开始记录数,$_POST['amount']即单次显示记录数,看SQL语句就明白,其实就是分页中用到的语句。

然后将查询的结果以JSON格式输出,PHP的任务就完成了。

最后来看下jquery.more.js的参数配置。

'amount'      :   '10',           //每次显示记录数
'address'     :   'comments.php', //请求后台的地址
'format'      :   'json',         //数据传输格式
'template'    :   '.single_item', //html记录DIV的class属性
'trigger'     :   '.get_more',    //触发加载更多记录的class属性
'scroll'      :   'false',        //是否支持滚动触发加载
'offset'      :   '100',          //滚动触发加载时的偏移量

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
js获取电脑分辨率的思路及操作
Nov 22 Javascript
js改变鼠标的形状和样式的方法
Mar 31 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 Javascript
JQuery之proxy实现绑定代理方法
Aug 01 Javascript
js实现点击按钮弹出上传文件的窗口
Dec 23 Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 Javascript
JS返回顶部实例代码
Aug 09 Javascript
js推箱子小游戏步骤代码解析
Jan 10 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 Javascript
vue 单页应用和多页应用的优劣
Oct 22 Javascript
CocosCreator如何实现划过的位置显示纹理
Apr 14 Javascript
jquery插件hiAlert实现网页对话框美化
May 03 #Javascript
javascript结合canvas实现图片旋转效果
May 03 #Javascript
浅谈javascript语法和定时函数
May 03 #Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
May 03 #Javascript
JQuery简单实现锚点链接的平滑滚动
May 03 #Javascript
jQuery中 attr() 方法使用小结
May 03 #Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 #Javascript
You might like
php实现mysql数据库备份类
2008/03/20 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
深入解析Python编程中super关键字的用法
2016/06/24 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
Django app配置多个数据库代码实例
2019/12/17 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
文明学生事迹材料
2014/01/29 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
化工专业求职信
2014/07/01 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
职工宿舍管理制度
2015/08/05 职场文书
导游词之杭州西湖
2019/09/19 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
Vue详细的入门笔记
2021/05/10 Vue.js
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android