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中几种去掉字串左右空格的方法
Dec 25 Javascript
javascript onmouseout 解决办法
Jul 17 Javascript
jQuery div层的放大与缩小简单实现代码
Mar 28 Javascript
jquery与prototype框架的详细对比
Nov 21 Javascript
jquery使用hide方法隐藏指定id的元素
Mar 30 Javascript
JS实现的幻灯片切换显示效果
Sep 07 Javascript
angular中的http拦截器Interceptors的实现
Feb 21 Javascript
easyui简介_动力节点Java学院整理
Jul 14 Javascript
webpack项目使用eslint建立代码规范实现
May 16 Javascript
了解前端理论:rscss和rsjs
May 23 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
Jul 25 Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 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
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
validator验证控件使用代码
2010/11/23 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
javascript编写简易计算器
2017/05/06 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
微信小程序实现登录注册功能
2020/12/29 Javascript
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
django+echart数据动态显示的例子
2019/08/12 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
前台领班岗位职责
2013/12/04 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书