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 相关文章推荐
jQuery :nth-child前有无空格的区别分析
Jul 11 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 Javascript
js淡入淡出的图片轮播效果代码分享
Aug 24 Javascript
深入理解关于javascript中apply()和call()方法的区别
Apr 12 Javascript
微信小程序 MINA文件结构
Oct 17 Javascript
js字符串操作总结(必看篇)
Nov 22 Javascript
JavaScript 数据类型详解
Mar 13 Javascript
vue.js源代码core scedule.js学习笔记
Jul 03 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
vue.js实现只弹一次弹框
Jan 29 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
Sep 30 Javascript
原生js canvas实现鼠标跟随效果
Aug 02 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程序
2006/10/09 PHP
NOT NULL 和NULL
2007/01/15 PHP
PHP循环获取GET和POST值的代码
2008/04/09 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
Seajs源码详解分析
2019/04/02 Javascript
JavaScript变量Dom对象的所有属性
2020/04/30 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
Python中http请求方法库汇总
2016/01/06 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
详解Python中的测试工具
2019/06/09 Python
python实现视频读取和转化图片
2019/12/10 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
C语言笔试集
2012/07/24 面试题
经济学博士求职自荐信范文
2013/11/23 职场文书
高效课堂教学反思
2016/02/24 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
2021年最新用于图像处理的Python库总结
2021/06/15 Python
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android