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

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

发布时间:2022-02-28 22:42:15 所属栏目:编程 来源:互联网
导读:本篇文章给大家带来的内容是关于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原生上拉加载以及点击加载更多的实现方法(代码示例)的详细内容。

(编辑:核心网)

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

    热点阅读