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 TextBox自动完成条
Jul 22 Javascript
javascript Array数组对象的扩展函数代码
May 22 Javascript
Jquery easyui 下loaing效果示例代码
Aug 12 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
Aug 05 Javascript
JavaScript编程的单例设计模讲解
Nov 10 Javascript
Bootstrap模态窗口源码解析
Feb 08 Javascript
解析Vue.js中的组件
Feb 02 Javascript
原生js实现的金山打字小游戏(实例代码详解)
Mar 16 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
Apr 07 Javascript
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
Vue 构造选项 - 进阶使用说明
Aug 14 Javascript
webpack4从0搭建组件库的实现
Nov 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
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
2007/02/22 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
node.js超时timeout详解
2014/11/26 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
python3转换code128条形码的方法
2019/04/17 Python
python语言元素知识点详解
2019/05/15 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
python3处理word文档实例分析
2020/12/01 Python
优秀士兵个人事迹材料
2014/01/19 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS