<html>
<script>
  var page=1;
// 页面第一次加载,显示第一页
  window.onload=function(){
    ajax_go(1)
  }

//分页的代码
  function ajax_go(type){
    if (type==1) {        //首页
      page=1;
    }else if (type=='prev') {    //上一页
      page=page-1>1?page-1:1;
    }else if(type=='next'){    //下一页
      page=page+1>max?max:page+1;
    }else{          //尾页
      page=max;
    }
    var str = ""

//ajax 核心代码
    var xhr = new XMLHttpRequest;
    xhr.open('get','getdata.php?p='+page)
    xhr.send();
    xhr.onreadystatechange=function(){  
      if (xhr.readyState==4&&xhr.status==200) {
        var obj = JSON.parse(xhr.responseText)
      // 数据
        var data = obj['data'];
      // 最大页码
        max = obj['pages'];

//拼接要显示的数据
        for (var i = 0; i < data.length; i++) {
          str +="<tr>"
          str +="<td>"+data[i]['id']+"</td>"
          str += "<td>"+data[i]['goods_name']+"</td>"
          str +="<td>"+data[i]['price']+"</td>"
          str +="<td>"+data[i]['state']+"</td>"
          str +="</tr>"
        }
        document.getElementById('content').innerHTML=str
        document.getElementById('all').innerHTML=max
      }
    }
  }

</script>
<body>
  <table border="1">
    <tr>
      <th>id</th>
      <th>标题</th>
      <th>单价</th>
      <th>状态</th>
    </tr>
    <tbody id="content">

    </tbody>
  </table>
  <div>
    共<span id='all'></span>页
    <span><button onclick="ajax_go(1)">首页</button></span>
    <span><button onclick="ajax_go('prev')">上一页</button></span>
    <span><button onclick="ajax_go('next')">下一页</button></span>
    <span><button onclick="ajax_go('end')">尾页</button></span>
  </div>
</body>
</html>

下面是getdata.php:

<?php
$link = mysqli_connect("127.0.0.1", "root", "root", "news") or die("数据库连接失败!");
// 一、接收页码值
$p = $_GET["p"] ?? 1;
// 二、获取总条数
$sql = "select * from goods";
$result = mysqli_query($link, $sql);
$total = mysqli_num_rows($result);
// 三、计算偏移量
$size = 5; // 设置每页显示条数
$start = ($p - 1) * $size;
//四、 拼接sql语句
$page_sql = "select * from goods limit $start,$size";
$res = mysqli_query($link, $page_sql);
// 查询出分页的数据
while ($rows = mysqli_fetch_assoc($res)) {
  $data[] = $rows;
}
// 总页数
$pages = ceil($total / $size);
// 把数组转为json字符串
echo json_encode(['pages' => $pages, 'data' => $data]);

?>

效果图:

原生ajax分页,无刷新分页,最简化。超简单,代码最少的更多相关文章

  1. Ajax 实现无刷新分页

    Ajax 实现无刷新分页

  2. 在Thinkphp中使用AJAX实现无刷新分页

    在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容: <?php // +------------------------------ ...

  3. javascript项目实战---ajax实现无刷新分页

    分页: limit 偏移量,长度; limit 0,7; 第一页 limit 7,7; 第二页 limit 14,7; 第三页 每页信息条数:7 信息总条数:select count(*) from ...

  4. ajax实现无刷新分页效果

    基于jquery.pagination.js实现的无刷新加载分页数据效果. 简介与说明 * 该插件为Ajax分页插件,一次性加载数据,故分页切换时无刷新与延迟.如果数据量较大,加载会比较慢. * 分页 ...

  5. Ajax做无刷新分页

    1.主页面代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  6. knockout Ajax异步无刷新分页 Demo +mvc+bootstrap

    最近工作中web客户端需要用到knockout,在此记录下一些Demo,以后用到的时候查找起来方便.也希望给新入门的knockout使用者一点经验.knockout官方文档.这儿是一个使用knocko ...

  7. thinkphp ajax 无刷新分页效果的实现

    思路:先做出传统分页效果,然后重新复制一份Page.class.php类,对它进行修改,把js中的函数传到page类中,把上一页.下一页.首页.尾页.链接页中的url地址改成js控制的函数,模板页面中 ...

  8. 学习笔记之AJAX无刷新分页

    利用AJAX实现无刷新分页技术原理: 其主要是利用AJAX的异步处理机制,实现数据的异步传递,它隐藏了客户端向服务端请求数据的状态,在客户端表现为无刷新的显示状态. 实现分页的步骤: 1.客服端点击页 ...

  9. Ajax 实现无刷新页面

    注意:如本文所用,在前面的文章库的数目可以在源代码中找到,我将指示在文本,其中链路,为了缩短制品的长度,阅读由此带来的不便.乞求被原谅. 评论文章 Ajax 实现无刷新页面.其原理.代码库.代码. 这 ...

  10. ajax 无刷新分页

    //ajax 无刷新分页1.前台要做的 滑动时 当前page+1,通过page ajax请求后台接口获取数据将数据进行拼装;2.后台要做的 做分页接口返回json数据前台判断触发请求条件: var p ...

随机推荐

  1. java核心技术(第十版卷一)笔记(纯干货!)

    这是我读过的第三本关于java基础的书.第一本<<java从入门到精通>>这本书让我灵识初开.第二本<<java敏捷开发>>这本书则是有一次被一位师傅批 ...

  2. 《Interest Rate Risk Modeling》阅读笔记——第四章:M-absolute 和 M-square 风险度量

    目录 第四章:M-absolute 和 M-square 风险度量 思维导图 两个重要不等式的推导 关于 \(M^A\) 的不等式 关于 \(M^2\) 的不等式 凸性效应(CE)和风险效应(RE)的 ...

  3. C/C++ 随笔目录

    [1]基础部分 (1)宏定义 <assert> <offset宏> <#pragma once> <宏定义学习> <预处理语句> <# ...

  4. Base64和本地以及在线图片互转

    package com.ruoyi.common.utils; import java.io.ByteArrayOutputStream; import java.io.FileInputStream ...

  5. [5]Hexo静态博客绑定域名及域名解析

    示例: http://zsy.xyz/ 前提预设:[4]Hexo静态博客背景及界面显示优化配置 [3]hexo+github搭建个人博客的主题配置 [2]hexo+github搭建个人博客的简单使用 ...

  6. winform窗体自适应大小

    1.添加一个类class AutoSizeFormClass { //(1).声明结构,只记录窗体和其控件的初始位置和大小. public struct controlRect { public in ...

  7. 使用Visual Studio的单元测试

    步骤1:创建被测试项目 创建单元测试项目步骤2:在测试项目中写测试代码步骤3:运行测试 方法1 右键运行测试,方法2 点击测试 运行所有测试备注:单击方法 右测有提示可以看测试方法的输出

  8. 【翻译】asp.net core 3.0基本概念

    这篇文章描述了开发asp.net core所需要掌握的基本概念. 原文地址:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/?vie ...

  9. 阿里云 centos 无法执行moodle cron

    在阿里云服务器安装moodle时,在执行cron计划任务时,报错sendmail: fatal: parameter inet_interfaces: no local interface found ...

  10. 基于tensorflow训练模型的显存不足解决办法

    import tensorflow as tfimport osos.environ["CUDA_VISIBLE_DEVICES"] = '0' #指定第一块GPU可用config ...