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温习篇 强大的JQuery选择器
Apr 24 Javascript
js 实现css风格选择器(压缩后2KB)
Jan 12 Javascript
Jquery带搜索框的下拉菜单
May 06 Javascript
给文字加上着重号的JS代码
Nov 12 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
Sep 20 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
Mar 01 Javascript
分析javascript中9 个常见错误阻碍你进步
Sep 18 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
Vue 实现前端权限控制的示例代码
Jul 09 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
Aug 06 Javascript
js实现炫酷光感效果
Sep 05 Javascript
Vue.extend 登录注册模态框的实现
Dec 29 Vue.js
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 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
Python 数据结构之堆栈实例代码
2017/01/22 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
介绍一下木马病毒的种类
2015/07/26 面试题
介绍下Java中==和equals的区别
2013/09/01 面试题
珠宝店促销方案
2014/03/21 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
2015年教师节感言
2015/08/03 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python