PHP23 AJAX分页
模型代码设计
以留言信息管理为例。
获取根据条件查询记录总数和分页数据。
<?php namespace 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>
测试效果

PHP23 AJAX分页的更多相关文章
- [jQuery]jQuery DataTables插件自定义Ajax分页实现
前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...
- ThinkPHP 整合Bootstrap Ajax分页
ThinkPHP Ajax分页代码 publicfunction index() { $where=array(); $name = I('name'); if(!empty($name)){ $wh ...
- yii2的分页和ajax分页
要想使用Yii分页类第一步:在控制器层加载分页类 use yii\data\Pagination;第二步: 使用model层查询数据,并用分分页,限制每页的显示条数$data = User::find ...
- [js开源组件开发]ajax分页组件
ajax分页组件 我以平均每一周出一个开源的js组件为目标行动着,虽然每个组件并不是很庞大,它只完成某一个较小部分的工作,但相信,只要有付出,总会得到回报的.这个组件主要完成分页的工作. 这张图里显示 ...
- MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)
该示例演示如何使用MvcPager最基本的Ajax分页模式. 使用AjaxHelper的Pager扩展方法来实现Ajax分页,使用Ajax分页模式时,必须至少指定MvcAjaxOptions的Upda ...
- MVC - 11(下)jquery.tmpl.js +ajax分页
继续 mvc-11(上).dto:http://www.cnblogs.com/tangge/p/3840060.html jquery.tmpl.js 下载:http://pan.baidu.com ...
- laraver ajax分页
,设置分页容器参考laraver手册 我的设置代码如下: ,控制器调用的方法:代码如下 ); include($path); $content = ob_get_cle ...
- PHP+jQuery 长文章分页类 ( 支持 url / ajax 分页方式 )
/* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8 **** ...
- PHP+jQuery 列表分页类 ( 支持 url 分页 / ajax 分页 )
/* ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.mi ...
随机推荐
- 高效使用ppt素材
一.素材大致分为: 立体素材:以TG素材为代表的那种高光立体素材 平面素材:以咨询公司麦肯锡.罗兰贝格公司为代表的平面设计的素材 二.使用原则: 原则一:平面左边,立体右边 这个原则告诉你几件事: 如 ...
- 《高性能iOS 应用开发》之降低你 APP 的电量消耗
在编写高性能 代码时, 电量消耗是一个需要重点处理的重要因素, 就执行时间和 CPU 资源的利用而言, 我们不仅要实现高效的数据结构和算法, 还需要考虑其他的因素,如果某个应用是个电池黑洞,那么一定不 ...
- Cg(C for Graphic)语言关键字(转)
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 第三章从 GPU 运行原理和数据流程的角 ...
- Spring Boot中使用Swagger2构建RESTful APIs介绍
1.添加相关依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <depen ...
- CI框架错误汇总
2017年1月13日12:09:02 [1] A PHP Error was encounteredSeverity: NoticeMessage: Undefined variable: aticl ...
- the little schemer 笔记(3)
第三章 cons the magnificent (rember a lat)是什么,其中a是mint,lat是(lamb chops and mint jelly) (lamb chops and ...
- selenium之webdriverAPI接口详解
1. 浏览器操作 driver.maximize_window() #最大化窗口driver.execute_script('window.scrollTo(0,0);') #滚动窗口到最上面driv ...
- Codeforces Round #544 (Div. 3) D. Zero Quantity Maximization
链接:https://codeforces.com/contest/1133/problem/D 题意: 给两个数组a,b. 同时ci = ai * d + bi. 找到一个d使c数组中的0最多. 求 ...
- 洛谷 P3400 仓鼠窝
卡常 #pragma GCC optimize(2) #include<cstdio> #include<algorithm> #include<cstring> ...
- web 前端的一些问题
1. HTML 和 JS 一个网页显示出来的静态的内容为html创见的静态object 对这些object的操作通过JS来响应 2. HTTP cookie cookie是由server set, 由 ...