php中手机端ajax上拉加载更多,php原生上拉加载,点击加载更多(jQuery,ajax,mysql)

设计目的

一个网站的数据很是多的时候,须要分页,方便浏览,为了方便翻页,那么咱们摒弃传统的点击翻页,直接往下拉,不停地自动加载数据,这样就能够方便阅读。javascript

设计原理

经过ajax向后端接口发起翻页请求,发送页码,后端接收页码,返回json数据,前端jquery解析json而且拼接在原有的数据基础上!php

代码

index.htmlhtml

jquery+ajax上拉加载更多

*{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;

}

点击加载更多

// 定义一个变量,等会用来控制屡次触发

var i=0;

$(window).scroll(function(){

//获取滚动时距离浏览器顶部的值

var t=$(this).scrollTop();

//获取当前窗口的高度

var h=$(this).height();

//获取按钮距离浏览器顶部的值

var h1=$('#loadmore').offset().top;

//用按钮的值-滚动条的值与窗口高度进行比较,若是小时,则表示按钮进入可视区,同时也表示滚动条即将到达底部

if(h1-t

//防止快速下拉时屡次触发

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("

"+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("

"+data[a].resname+"

");

$("#loading").remove();

}

i=0;

},

error:function(data){

$('#text').append("

"+服务器错误+"

");

},

beforeSend:function(data){

$('#loading').append("加载中");

}

});

});

server.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);

?>

DEMO:戳这里

做者:TANKING

学习交流微信:face6009

网站:likeyunba.comjava

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值