加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php原生上拉加载以及点击添加更多的实现方法

发布时间:2023-10-11 11:31:01 所属栏目:PHP教程 来源:
导读:本篇文章给大家带来的内容是关于php原生上拉加载以及点击加载更多的实现方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

设计目的:

一个网站的数据非常多的时候,需要分页,方便浏览,
本篇文章给大家带来的内容是关于php原生上拉加载以及点击加载更多的实现方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

设计目的:

一个网站的数据非常多的时候,需要分页,方便浏览,为了方便翻页,那么我们摒弃传统的点击翻页,直接往下拉,不停地自动加载数据,这样就可以方便阅读。

设计原理:

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

代码:index.html

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0,viewport-fit=cover"> 
 
    <meta name="apple-mobile-web-app-capable" content="yes"> 
 
    <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
 
    <meta name="format-detection" content="telephone=no"> 
 
    <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> 
 
</head> 
 
<body> 
 
    <h3 id="loading"></h3> 
 
    <div id="text"></div> 
 
    <div id="loadmore">点击加载更多</div> 
 
</body> 
 
</html> 
 
<!--引入jquery库--> 
 
<script type="text/javascript" src="http://www.yilingsj.com/skin/yilingsj/js/jquery-1.8.3.min.js"></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+"</p>"); 
 
          $("#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+"</p>"); 
 
          $("#loading").remove(); 
 
      } 
 
   i=0; 
 
  }, 
 
    error:function(data){ 
 
   $('#text').append("<p>"+服务器错误+"</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原生上拉加载以及点击加载更多的实现方法的详细内容。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章