gpt4 book ai didi

jQuery+PHP+ajax实现微博加载更多内容列表功能

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章jQuery+PHP+ajax实现微博加载更多内容列表功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在一些微博网站上我们经常可以看到这样的应用,微博内容列表上并没有使用分页条,而是一次加载一定数量的记录显示在列表页,当用户浏览到列表页底部时,可以通过单击“查看更多”来加载更多记录。本文将结合jQuery和PHP给大家讲述如何实现这种功能.

Ajax加载的基本原理:当页面载入时,jQuery向后台请求数据,PHP通过查询数据库将最新的几条记录显示在列表页,在列表页的底部有个“查看更多”的链接,通过触发该链接,向服务端发送Ajax请求,后台PHP程序得到请求参数,并作出响应,获取数据库相应的记录并以JSON的形式返回给前台页面,前台页面jQuery解析JSON数据,并将数据追加到列表页。其实就是Ajax分页效果.

首先要引入jquery库和jquery.more.js插件,jquery.more.js已经将许多功能都封装好了,并提供了参数配置的功能.

?
1
2
<script type= "text/javascript" src= "jquery.js" ></script>
<script type= "text/javascript" src= "jquery.more.js" ></script>

xhtml结构如下:

?
1
2
3
4
5
6
7
8
9
10
< 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样式如下:

?
1
2
3
4
5
6
7
8
9
#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部分如下:

?
1
2
3
$( function (){
  $( '#more' ).more({ 'address' : 'data.php' })
});

使用很简单,配置了后台地址:data.php,来看data.php是怎么处理数据的.

PHP部分:

data.php文件:

链接数据库:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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的参数配置:

?
1
2
3
4
5
6
7
'amount'  : '10' ,   //每次显示记录数
'address'  : 'comments.php' , //请求后台的地址
'format'  : 'json' ,   //数据传输格式
'template' : '.single_item' , //html记录DIV的class属性
'trigger'  : '.get_more' , //触发加载更多记录的class属性
'scroll'  : 'false' //是否支持滚动触发加载
'offset'  : '100' ,   //滚动触发加载时的偏移量

最后此篇关于jQuery+PHP+ajax实现微博加载更多内容列表功能的文章就讲到这里了,如果你想了解更多关于jQuery+PHP+ajax实现微博加载更多内容列表功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com