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 相关文章推荐
点击广告后才能获得下载地址
Oct 26 Javascript
用js实现多域名不同文件的调用方法
Jan 12 Javascript
告诉大家什么是JSON
Jun 10 Javascript
javascript 写类方式之五
Jul 05 Javascript
js绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
jQuery实现的Div窗口震动效果实例
Aug 07 Javascript
jQuery实现的登录浮动框效果代码
Sep 26 Javascript
jQuery滚动加载图片实现原理
Dec 14 Javascript
JavaScript编程中实现对象封装特性的实例讲解
Jun 24 Javascript
关于ES6箭头函数中的this问题
Feb 27 Javascript
微信小程序云函数使用mysql数据库过程详解
Aug 07 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
Apr 29 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
对python内置map和six.moves.map的区别详解
2018/12/19 Python
Python docx库用法示例分析
2019/02/16 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
python实现坦克大战
2020/04/24 Python
Python将字典转换为XML的方法
2020/08/01 Python
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
护士自我评价
2014/02/01 职场文书
党员党性分析材料
2014/02/17 职场文书
工厂搬迁方案
2014/05/11 职场文书
学校校庆演讲稿
2014/05/22 职场文书
摄影展策划方案
2014/06/02 职场文书
建筑横幅标语
2014/10/09 职场文书
通知格式
2015/04/27 职场文书
趣味运动会标语口号
2015/12/26 职场文书
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
CentOS7和8下安装Maven3.8.4
2022/04/07 Servers
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL