首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在uri - Codeigniter中使用获取数据的分页

在uri - Codeigniter中使用获取数据的分页
EN

Stack Overflow用户
提问于 2012-05-08 18:25:45
回答 1查看 8.3K关注 0票数 2

我正在尝试对DB返回的结果进行分页。但是当我尝试从URI获取偏移量时:

questions/search?content=foobar/4

/4应该是偏移量,但它被分配给了$_GET值。

这是控制器中的整个方法:

http://pastebin.com/QFJddMDJ

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$results = $this->question->search_results_count($content);
$this->load->library('pagination');
$config['total_rows'] = count($results);
$offset = $this->uri->segment(3);
if ($offset == false) $offset = 0;
$config['full_tag_open'] = '<ul class="pages">';
$config['full_tag_close'] = '</ul>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li><a  class="active">';
$config['cur_tag_close'] = '</a></li>';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '<li>';
$config['next_tag_open'] = '<li class="next">';
$config['next_tag_close'] = '</li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['first_link'] = '<<';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_link'] = '>>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['per_page'] = 1;
$config['uri_segment'] = 2;
$config['page_query_string'] = TRUE;
$config['use_page_numbers'] = TRUE;
$config['suffix'] = '?content='.$content;
$config['base_url'] = base_url().'questions/search/';
$this->pagination->initialize($config);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-08 19:49:07

我相信您知道,URI不是这样工作的。查询字符串必须在末尾(或在#哈希片段之前)。此查询字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
questions/search?content=foobar/4

意思是$_GET['content'] = 'foobar/4';

您需要将分页URL更改为如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
questions/search/4/?content=foobar

4后面的/也是可选的。

您必须从分页的$config['base_url']中删除查询字符串,并将其附加到视图中的链接中,不幸的是,这涉及到对分页类的攻击……

或尝试此未记录的功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// After loading the pagination class
$this->pagination->suffix = '{YOUR QUERY STRING}';

或者更好的做法是,在装入类之前将$config['suffix'] = '{YOUR QUERY STRING}';添加到您的配置中。这将自动将查询字符串添加到每个链接的href中。

还需要对配置区域进行一些调整:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Make sure to encode these
// $config['first_link'] = '<<';
$config['first_link'] = '&lt;&lt;';
// $config['last_link'] = '>>';
$config['last_link'] = '&gt;&gt;';

$offset = $this->uri->segment(3);
// Default URI segment is 3, and it's what you use above. Remove this.
// $config['uri_segment'] = 2;

// This should be FALSE (default). Remove it.
// $config['page_query_string'] = TRUE;

// This should be FALSE (default) if you're
// using the URI segment as your OFFSET. Remove it.
// $config['use_page_numbers'] = TRUE;

// Add your query string
$config['suffix'] = '?content='.$content;
$config['base_url'] = base_url().'questions/search/';
$this->pagination->initialize($config);
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10504274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文