我已经通过CodeIgniter分页库创建了分页项目,代码如下:
echo $this->pagination->create_links()
一切都运作良好。
现在我想通过ajax加载数据,我已经完成了ajax部分。但问题是将clicked item
作为current item
并安排current item
的链接,因为它不再是最新的。
假设我有一个分页如下:
[1] 2 [3] [4] [5] [6] [>] [Last >]
现在2是当前项目,4是点击项目。
我已检查CodeIgniter Pagination library,但它没有启用或禁用当前页面链接的任何选项。是否可以在不修改库的情况下获得当前页面链接?
提前致谢。
答案 0 :(得分:1)
我把它全部拿回来。需要更改分页库。
https://github.com/EllisLab/CodeIgniter/blob/develop/system/libraries/Pagination.php
第560行
$output .= $this->cur_tag_open.$loop.$this->cur_tag_close
需要替换为
$append = $this->prefix.$i.$this->suffix;
$output .= $this->num_tag_open.'<a href="'.$this->base_url.$append.'"'.$attributes.$this->_attr_rel('start').'>'.$loop.'</a>'.$this->num_tag_close;
应该这样做。
答案 1 :(得分:0)
您无需在服务器端修改任何内容。只需使用普通的旧vanila jquery。
这是怎么做的。
假设我将链接包裹在<div id="pagination"></div>
jQuery(body).on('click','#pagination a', function(e){....})
。
在此代码中,jQuery(this)
将引用已单击的链接。 active
(或给定的任何其他类)。比如jQuery('#pagination a').removeClass('active')
。jQuery(this)
仍然提到当前点击的项目。 (最好在点击开始时将其保存为var current = jQuery(this)
,以便引用不会改变。现在,只需添加该类。jQuery(current).addClass('active')
你完成了!无需在服务器端做任何有趣的事情。有时客户方就足够了。
P.S。我忘了CI如何呈现分页链接。如果你给出链接,我可以写出实际的代码。
答案 2 :(得分:0)
var_dump($this->pagination);
一切都在里面
然后,如果您检查Pagination.php库,您也可以使用这些参数:
var $cur_tag_open = '';
var $cur_tag_close = '';
所以在初始化分页时尝试调用它们
$pagination['cur_tag_open'] = '<span class="current-link">';
$pagination['cur_tag_close'] = '</span>';
$this->pagination->initialize($pagination); //now current link should be wrapped into the <span class="current-link"></span>
答案 3 :(得分:0)
我认为你不需要改变Pagination库中的任何内容。您只需要使用 uri_segment()功能。 Pagination库的参数如下:
$config['uri_segment'] = 5;
默认值为3. [使用适用于您的URI结构的值]。
此变量与uri_segment()函数一起用于确定当前页面,在最新版本的CodeIgniter 2.1.4中,您将在分页中的第142行处找到它.php 库。
页面标识符的相应uri_segment可以按如下方式计算,如果使用类似这样的URI:http://example.com/controller/function/page/ 20 那么您可以按如下方式获取当前页面,
$page = $this->uri_segment(4);
希望有所帮助。
答案 4 :(得分:0)
你真的不需要改变任何东西。 一旦设置了自动页面
$ page = 2 //页面应自动设置
现在试试这个
$ config [“cur_page”] = $ page;