模型代码设计

以留言信息管理为例。

获取根据条件查询记录总数和分页数据。

<?phpnamespace application\admin\models;use core\mybase\Model;/**用户留言信息管理数据模型*/
class GbmgrModel extends Model
{/**查询有多少条留言*/public function count($like = null){$sql = null;if ($like != null) {$sql = "SELECT COUNT(1) AS total FROM guestbook WHERE uname LIKE '%" . $like . "%' ";} else {$sql = "SELECT COUNT(1) AS total FROM guestbook";}$result = $this->query($sql, null);return $result[0]["total"];}/**分页留言信息查询*/public function list($pageIndex = 1, $pageSize = 10, $like = null){$sql=null;if ($like != null) {$sql = "SELECT * FROM guestbook WHERE uname LIKE '%" . $like . "%' ORDER BY id DESC LIMIT " . ($pageIndex - 1) * $pageSize . "," . $pageSize;}else{$sql = "SELECT * FROM guestbook ORDER BY id DESC LIMIT " . ($pageIndex - 1) * $pageSize . "," . $pageSize;}return $this->query($sql, null);}}

  

控制器代码设计

控制器接受从视图发起的数据请求。

从数据模型获取分页数据,以json格式返回视图。

<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2018/7/12* Time: 11:21*/namespace application\admin\controllers;use application\admin\models\GbmgrModel;
use core\mybase\Controller;class PageController extends Controller
{public function index(){$this->display();}/**分页留言数据*/public function listgb(){$pageIndex = isset($_GET['pageIndex']) ? $_GET['pageIndex'] : 1;$pageSize = isset($_GET['pageSize']) ? $_GET['pageSize'] : 10;$like = isset($_GET['like']) ? $_GET['like'] : null;$gm = new GbmgrModel();//获得符合条件的总记录数$totalCount = $gm->count($like);//获得分页数据$list = $gm->list($pageIndex, $pageSize, $like);//总页数$totalPage = $totalCount % $pageSize == 0 ? $totalCount / $pageSize : intval($totalCount / $pageSize) + 1;//上一页$previous = $pageIndex <= 1 ? 1 : $pageIndex - 1;//下一页$next = $pageIndex >= $totalPage ? $totalPage : $pageIndex + 1;$result = ["totalCount" => $totalCount, "totalPage" => $totalPage, "pageIndex" => $pageIndex, "previous" => $previous, "next" => $next, "list" => $list];echo json_encode($result, JSON_UNESCAPED_UNICODE);}
}

  

视图脚本

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>自定义分页</title><script src="<?php echo __ADMIN_JS__;?>jquery-1.11.1.min.js"></script><script type="text/javascript">$(function () {getByPage(1);$("#qureyBut").click(function () {getByPage(1);});});function getByPage(pageNo) {$("[name=pageIndex]").val(pageNo);//设置表单的 页号参数var params = $("#selectName").serialize();//序列化模糊查询条件和页码$.getJSON("index.php?g=admin&c=page&a=listgb", params, function (data) {//删除表格之前数据(标题栏除外)--->防止出现几页的数据叠加的情况$("#selectTable tr").not(":first").remove();//设置上一页 下一页连接$("a:eq(0)").attr("href", "javascript:getByPage(1)");$("a:eq(1)").attr("href", "javascript:getByPage(" + data.previous + ")");$("a:eq(2)").attr("href", "javascript:getByPage(" + data.next + ")");$("a:eq(3)").attr("href", "javascript:getByPage(" + data.totalPage + ")");//设置显示信息(当前页号,总页号,总条数)$("#pageIndex").html(data.pageIndex);$("#totalPage").html(data.totalPage);$("#totalCount").html(data.totalCount);//在表格添加数据 使用each方法遍历 控制器传回的数据中的list集合$.each(data.list, function () {var tr = "<tr>" +"<td>" + this.id + "</td>" +"<td>" + this.uname + "</td>" +"<td>" + this.uemail + "</td>" +"<td>" + this.uphone + "</td>" +"<td>" + this.umessage + "</td>" +"</tr>";$("#selectTable").append(tr);});});}</script>
</head>
<body><div class="menu"><form method="post" action="#" id="selectName"><input name="pageIndex" type="hidden" value="1">用户名:<input name="like" class="input-text" type="text" value="">     <input value="查 询" type="button" id="qureyBut"></form>
</div><div class="content"><table id="selectTable" border="1px"><tr><th>编号</th><th>姓名</th><th>邮箱</th><th>电话</th><th>留言</th></tr></table>当前第<span id="pageIndex"></span> 页 ,总页数:<span id="totalPage"></span>,总条数:<span id="totalCount"></span>     <a href="">首页</a><a href="">上一页</a><a href="">下一页</a><a href="">末页</a>
</div></body>
</html>

  

测试效果

  

转载于:https://www.cnblogs.com/rask/p/9299862.html

PHP23 AJAX分页相关推荐

  1. java ajax jquery分页插件_分享精心挑选的12款优秀jQuery Ajax分页插件和教程

    摘要:这篇jQuery栏目下的"分享精心挑选的12款优秀jQuery Ajax分页插件和教程",介绍的技术点是"jquery_ajax分页插件.jquery_ajax.a ...

  2. PHP、jQuery、jQueryPager结合实现Ajax分页

    建立html文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  3. think php ajax分页,thinkPHP5框架实现基于ajax的分页功能示例

    本文实例讲述了thinkPHP5框架实现基于ajax的分页功能.分享给大家供大家参考,具体如下: 最近一个页面的选项卡又牵扯到ajax分页,所以研究了一下tp5的ajax分页使用方法 首先看一下tp5 ...

  4. ajax分页实现(php)

    ajax分页实现(php) 使用jquery.pagination.js插件 引入js文件.css文件 <link rel="stylesheet" href="/ ...

  5. Thinkphp ajax分页

    Thinkphp中用ajax分页和普通的ajax分页的区别在于处理位置的不同,thinkphp是在控制器的方法中处理ajax传的值,然后返回数据.下面是一个点击事件触发后,显示的内容用ajax分页. ...

  6. php ajax 分页phpapi,ajax分页_php ajax分页代码

    摘要 腾兴网为您分享:php ajax分页代码,智慧农业,长沙银行,一折包邮,信和财富等软件知识,以及381.65,红娘牵线,中经油马,战地小,歌词制作,唯美会,微软必应输入法,邓州在线,螺丝钉,侠客 ...

  7. 使用MVCPager做AJAX分页所需要注意的地方

    1.版本问题,推荐使用2.0以上,对ajax支持才比较的好了 2.当需要使用页索引输入或下拉框以及使用Ajax分页模式时,必须用Html.RegisterMvcPagerScriptResource方 ...

  8. discuz的ajax,discuz分页函数改成基于jqueryd的ajax分页函数

    /** *AJAX分页 *$num 为总共的条数   比如说这个分类下共有15篇文章 *$perpage为每页要显示的条数 *$curpage为当前的页数 *$url为请求路径, *$obj为html ...

  9. java ajax jquery分页插件_jquery ajax分页插件的简单实现

    说到基于jQuery的ajax分页插件,那我们就先看看主要的代码结构: 1.首先定义一个pager对象: var sjPager = window.sjPager = { opts: { //默认属性 ...

最新文章

  1. java8中谨慎使用实数作为HashMap的key
  2. jop怎么读音英语怎么说_“秀恩爱”英语怎么说?可不是“show love”
  3. 学习数据结构 二叉查找树(binary search tree)
  4. 写给开发向产品转型的同学的3句话
  5. 安徽省计算机二级考试vfp试题,安徽省计算机二级VFP考试理论模拟试题2(附答案)...
  6. 余额宝好日子到头,以后不能随存随取了!
  7. [kuangbin]各种各样的题单
  8. 应用重连时间_App Store 无法正常下载应用,一直转圈的处理办法
  9. 转载:互联网盈利模式
  10. 数值优化之高斯-牛顿法(Gauss-Newton)
  11. 高度设置为100%无效的解决办法
  12. WAP2.0的历史使命和技术演变
  13. NRF24L01入门总结
  14. Windows10明文密码抓取
  15. 开源数据库管理系统现在比商业产品更受欢迎
  16. PyTorch 1.x 常用知识
  17. 计算机英语 book,book是什么意思_book在线翻译_英语_读音_用法_例句_海词词典
  18. Android 蓝牙知识
  19. android签到日历实现
  20. Edge 浏览器 URLSearchParams bug 修复

热门文章

  1. 提醒:安装MS11-100 .NET Framework高危漏洞补丁一定要所有服务器一起安装
  2. 神奇的for循环,让你的for循环执行100w + 1比100w次快200w倍
  3. 步步为营,重构出模式(2)
  4. 《设计模式详解》创建型模式 - 单例模式
  5. 基于springboot+thymeleaf+mybatis的员工管理系统 —— 登录与注册
  6. 《Algorithms》—— 链表实现栈,队列,背包
  7. 信息系统项目管理04——项目整体管理
  8. 软件设计师10-面向对象-设计模式
  9. php执行cmd/shell命令 木马小后门
  10. 正确选择报表工具的十大标准