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 ...
随机推荐
- RESTEasy使用json返回的例子
创建一个json的model类: package com.howtodoinjava.model; import java.io.Serializable; import javax.xml.bind ...
- Table View Programming Guide for iOS---(五)---Creating and Configuring a Table View
Creating and Configuring a Table View Your app must present a table view to users before it can mana ...
- Design with the User in Mind--从用户角度进行设计
Back to Human Interface Design Design with the User in Mind 从用户角度进行设计 The success of a Mac app depen ...
- mysite-exampleservice和mysite-vsg
可能找到了这两个nova安装的地方,下午分析 搜素site_name test 这条线 cord-compute-maas-playbook这条线 这个可以作为验证
- 51nod 1051 最大子矩阵和(DP)
题意 略 分析 一道经典的DP题,但是我弱到差点做不出来,真的垃圾 设置\(sum(i,j)代表1-i行第j列的前缀和\),然后枚举行i和行j,再枚举列k,做一遍类似一维的最大子段和即可 #inclu ...
- 寻找项目中顶级Vue对象 (一)
个人博客首发博客园: http://www.cnblogs.com/zhangrunhao/ 参考 感谢作者 从一个奇怪的错误出发理解 Vue 基本概念 安装 - Vue.js 渲染函数 - Vue. ...
- selenium2+python自动化2-元素定位
嘻嘻,书接上回,接着唠,这里先补充一下自动化要掌握的四个步骤吧:获取元素.操作元素.获取返回值.断言(返回结果与期望结果是否一致),最后就是自动化测试报告的生成.这一片主要讲一下如何进行元素定位.元素 ...
- 145 Binary Tree Postorder Traversal 二叉树的后序遍历
给定一棵二叉树,返回其节点值的后序遍历.例如:给定二叉树 [1,null,2,3], 1 \ 2 / 3返回 [3,2,1].注意: 递归方法很简单,你可以使用迭代方法来解 ...
- Joystick
Joystick相当于5个按键的集合,向上.下.左.右.中间5个方向接通,经常用于游戏场合.
- 关于提示replication性能
关于GTIDs的二进制日志:gtid_next: 下一个事务的编号,是master传给slave的 如SET @@SESSION.GTID_NEXT= 'c09756b8-a7e7-11e5-9468 ...