本篇文章给大家带来的内容是关于php原生上拉加载以及点击加载更多的实现方法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
设计目的
一个网站的数据非常多的时候,需要分页,方便浏览,为了方便翻页,那么我们摒弃传统的点击翻页,直接往下拉,不停地自动加载数据,这样就可以方便阅读。
设计原理
通过ajax向后端接口发起翻页请求,发送页码,后端接收页码,返回json数据,前端jquery解析json并且拼接在原有的数据基础上!
代码
index.html
nbsp;html>
<meta>
<meta>
<meta>
<meta>
<meta>
<meta>
<title>jquery+ajax上拉加载更多</title>
<style>
*{margin:0;padding: 0;}
#text p{
width: 80%;
padding: 5px 5px;
background: #eee;
margin:5px auto;
}
#loadmore{
width: 120px;
background: #eee;
height: 45px;
border-radius: 100px;
margin:20px auto;
line-height: 45px;
text-align: center;
cursor: pointer;
}
#loading{
text-align: center;
}
</style>
<h3></h3>
<div></div>
<div>点击加载更多</div>
<!--引入jquery库-->
<script></script><script>
// 定义一个变量,等会用来控制多次触发
var i=0;
$(window).scroll(function(){
//获取滚动时距离浏览器顶部的值
var t=$(this).scrollTop();
//获取当前窗口的高度
var h=$(this).height();
//获取按钮距离浏览器顶部的值
var h1=$('#loadmore').offset().top;
//用按钮的值-滚动条的值与窗口高度进行比较,如果小时,则表示按钮进入可视区,同时也表示滚动条即将到达底部
if(h1-t<h){
//防止快速下拉时多次触发
if(i==0){
//改变i的值
i=1;
//触发点击事件
$('#loadmore').click();
}
}
});
// 加载初始数据
var p = 1;
$.ajax({
type:"get",
url:'server.php?page=' + p,
data:{},
dataType:"json",
success:function(data){
for (var a in data){
$('#text').append("<p>"+data[a].resname+"");
$("#loading").remove();
}
i=0;
},
error:function(data){
},
beforeSend:function(data){
$('#loading').append("加载中");
}
});
// 加载更多
$('#loadmore').click(function(){
p++;
$.ajax({
type:"get",
url:'server.php?page=' + p,
data:{},
dataType:"json",
success:function(data){
for (var a in data){
$('#text').append("<p>"+data[a].resname+"");
$("#loading").remove();
}
i=0;
},
error:function(data){
$('#text').append("<p>"+服务器错误+"");
},
beforeSend:function(data){
$('#loading').append("加载中");
}
});
});
</script>
server.php
<?php header("Content-type:application/json");
header('Access-Control-Allow-Origin:*');
// 连接数据库
$con = mysql_connect("数据库地址","数据库账号","数据库密码");
if (!$con){die('Could not connect: ' . mysql_error());}
mysql_select_db("数据库名", $con);
mysql_query("SET NAMES UTF8");
// 每页显示条数
$pageLine = 5;
// 计算总记录数
$ZongPage = mysql_query("select count(*) from 表名");
// 计算总页数
$sum = mysql_fetch_row($ZongPage);
$pageCount = ceil($sum[0]/$pageLine);
// 定义页码变量
@$tmp = $_GET['page'];
// 计算分页起始值
$num = ($tmp - 1) * $pageLine;
// 查询语句
$result = mysql_query("SELECT 字段 FROM 表名 ORDER BY id DESC LIMIT " . $num . ",$pageLine");
//遍历输出
$results = array();
while ($row = mysql_fetch_assoc($result)) {
$results[] = $row;
}
echo json_encode($results);
//分页按钮
//上一页
$lastpage = $tmp-1;
//下一页
$nextpage = $tmp+1;
//防止翻过界
if (@$tmp > $pageCount) {
echo "[{\"result\":\"没有了\"}]";
}
// 关闭数据库连接
mysql_close($con);
?>
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











