directory search
欢迎 目录 快速参考图 基本信息 服务器要求 许可协议 变更记录 关于CodeIgniter 安装 下载 CodeIgniter 安装指导 从老版本升级 疑难解答 介绍 开始 CodeIgniter 是什么? CodeIgniter 速记表 支持特性 应用程序流程图 模型-视图-控制器 架构目标 教程 内容提要 加载静态内容 创建新闻条目 读取新闻条目 结束语 常规主题 CodeIgniter URL 控制器 保留字 视图 模型 辅助函数 使用 CodeIgniter 类库 创建你自己的类库 使用 CodeIgniter 适配器 创建适配器 创建核心系统类 钩子 - 扩展框架的核心 自动装载资源 公共函数 URI 路由 错误处理 缓存 调试应用程序 以CLI方式运行 管理应用程序 处理多环境 PHP替代语法 安全 开发规范 类库参考 基准测试类 日历类 购物车类 配置类 Email 类 加密类 文件上传类 表单验证详解 FTP 类 图像处理类 输入类 Javascript 类 语言类 装载类 迁移类 输出类 分页类 模板解析器类 安全类 Session 类 HTML 表格类 引用通告类 排版类 单元测试类 URI 类 User-Agent 类 表单验证 XML-RPC 和 XML-RPC 服务器 Zip 编码类 缓存适配器 适配器参考 适配器 数据库类 Active Record 类 数据库缓存类 自定义函数调用 数据库配置 连接你的数据库 数据库快速入门例子代码 字段数据 数据库维护类 查询辅助函数 数据库类 查询 生成查询记录集 表数据 事务 数据库工具类 JavaScript类 辅助函数参考 数组辅助函数 CAPTCHA 辅助函数 Cookie Helper 日期辅助函数 目录辅助函数 下载辅助函数 Email 辅助函数 文件辅助函数 表单辅助函数 HTML辅助函数 Inflector 辅助函数 语言辅助函数 数字辅助函数 路径辅助函数 安全辅助函数 表情辅助函数 字符串辅助函数 文本辅助函数 排版辅助函数 URL 辅助函数 XML 辅助函数
characters

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

分页类

CodeIgniter 的分页类是一个非常简单,并且 100% 用户自定义的类。

分页类允许你通过提交链接从一个页面导航至另一个页面,如下:

« First  < 1 2 3 4 5 >  Last »

例子

这里有一个例子展示了如何在你的控制器里创建一个分页:

$this->load->library('pagination');

$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;

$this->pagination->initialize($config);

echo $this->pagination->create_links();

提示:

$config 数组包含了你的配置参数。这些参数被 $this->pagination->initialize 方法传递,如上面的例子所展示。以下是对这些项目的描述:

  • base_url 这是一个完整的 URL 路径通向包含你的分页控制器类/方法。在上面的这个例子里,它指向了一个叫“Test”的控制器和它的一个方法叫“Page”。 记住,你可以重新路由你的 URI,如果你需要一个不同的结构。
  • total_rows 这个数字展示了你需要做分页的数据总行数。这个数值是你查询数据库得到的数据总量。
  • per_page 这个数字计划了你每个页面中希望展示的项目数量,在上面的那个例子中,你可以得到每页显示 20 个项目。

当你没有分页需要显示时,create_links() 方法会返回一个空的字符串。

在配置文件中设置参数

如果你不喜欢用以上的方法设定你的喜欢,你可以用简单的创建一个新的文件叫做 pagination.php,把 $config 数组加到这个文件中。把文件保存至 config/pagination.php 可以让它被自动使用。用这个方法,你不在需要使用 $this->pagination->initialize 方法。

自定义分页

下面是一个参数列表,你可以通过初始化方法来定制你喜欢的显示效果。

$config['uri_segment'] = 3;

分页方法自动测定你 URI 的哪个部分包含页数。如果你需要一些不一样的,你可以明确指定它。

$config['num_links'] = 2;

放在你当前页码的前面和后面的“数字”链接的数量。比方说值为 2 就会在每一边放置 2 个数字链接,就像此页顶端的示例链接那样。

$config['use_page_numbers'] = TRUE;

默认分页URL中是显示每页记录数,启用use_page_numbers后显示的是当前页码,如下:

不启用:http://example.com/index.php/test/page/20
启用后:http://example.com/index.php/test/page/1

$config['page_query_string'] = TRUE

默认情况下,分页类库假设你使用 URI 段,并像这样构造你的链接:

http://example.com/index.php/test/page/20

如果你把 $config['enable_query_strings'] 设置为 TRUE,你的链接将自动地被用查询字符串重写。这个选项也可以被明确地设置。把 $config['page_query_string'] 设置为 TRUE,分页链接将变成:

http://example.com/index.php?c=test&m=page&per_page=20

请注意,“per_page”是默认传递的查询字符串,但也可以使用 $config['query_string_segment'] = '你的字符串' 来配置。

添加封装标签

如果你希望在整个分页周围围绕一些标签,你可以通过下面的两种方法:

$config['full_tag_open'] = '<p>';

把打开的标签放在所有结果的左侧。

$config['full_tag_close'] = '</p>';

把关闭的标签放在所有结果的右侧。

自定义起始链接

$config['first_link'] = 'First';

你希望在分页的左边显示“第一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。

$config['first_tag_open'] = '<div>';

“第一页”链接的打开标签。

$config['first_tag_close'] = '</div>';

“第一页”链接的关闭标签。

自定义结束链接

$config['last_link'] = 'Last';

你希望在分页的右边显示“最后一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。

$config['last_tag_open'] = '<div>';

“最后一页”链接的打开标签。

$config['last_tag_close'] = '</div>';

“最后一页”链接的关闭标签。

自定义“下一页”链接

$config['next_link'] = '&gt;';

你希望在分页中显示“下一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。

$config['next_tag_open'] = '<div>';

“下一页”链接的打开标签。

$config['next_tag_close'] = '</div>';

“下一页”链接的关闭标签。

自定义“上一页”链接

$config['prev_link'] = '&lt;';

你希望在分页中显示“上一页”链接的名字。如果你不希望显示,可以把它的值设为 FALSE 。

$config['prev_tag_open'] = '<div>';

“上一页”链接的打开标签。

$config['prev_tag_close'] = '</div>';

“上一页”链接的关闭标签。

自定义“当前页”链接

$config['cur_tag_open'] = '<b>';

“当前页”链接的打开标签。

$config['cur_tag_close'] = '</b>';

“当前页”链接的关闭标签。

自定义“数字”链接

$config['num_tag_open'] = '<div>';

“数字”链接的打开标签。

$config['num_tag_close'] = '</div>';

“数字”链接的关闭标签。

隐藏“数字”链接

如果你不想显示“数字”链接(比如只显示 “上一页” 和 “下一页”链接)你可以添加如下配置:

$config['display_pages'] = FALSE;
// 不显示“数字”链接

给链接添加 CSS 类

如果你想要给每一个链接添加 CSS 类,你可以添加如下配置:

$config['anchor_class'] = "";
//添加 CSS 类

 

翻译贡献者: Fanbin, Hex, IT不倒翁, li_star, peirancao, roln, sankai, yadgen, 笼中
最后修改: 2012-04-12 11:28:02
Previous article: Next article: