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操作Cookies的实现代码
Oct 09 Javascript
红米手机抢购的js代码
Mar 10 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
Ajax与服务器(JSON)通信实例代码
Nov 05 Javascript
通过原生JS实现为元素添加事件的方法
Nov 23 Javascript
基于Node的React图片上传组件实现实例代码
May 10 Javascript
基于Vuex无法观察到值变化的解决方法
Mar 01 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
Apr 28 Javascript
Vue数字输入框组件使用方法详解
Feb 10 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
Aug 03 Javascript
JavaScript如何实现防止重复的网络请求的示例
Jan 28 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安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
Bootstrap表单使用方法详解
2017/02/17 Javascript
js模块加载方式浅析
2017/08/12 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
python之wxPython应用实例
2014/09/28 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
使用tensorflow实现线性回归
2018/09/08 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
opencv实现图像平移效果
2021/03/24 Python
大学生入党自我鉴定
2013/10/31 职场文书
党性教育心得体会
2014/09/03 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP