在codeigniter中在一页上进行多个分页的最佳方法
Posted
技术标签:
【中文标题】在codeigniter中在一页上进行多个分页的最佳方法【英文标题】:Best way to do multiple pagination on one page in codeigniter 【发布时间】:2012-06-24 16:00:33 【问题描述】:我看过很多关于堆栈溢出的关于这个主题的旧帖子,但似乎都没有给出任何明确的说明。我通过它们了解到的是,codeigniter 不支持通过其类进行多个分页,您必须编写自己的类。
我想知道是不是这样。如果这里的任何人对如何做到这一点有任何想法,请告诉我。我有三个要传递到视图中的列表。但是,当我对它们进行分页时,所有三个列表都会响应相同的页面偏移量。 Ajax_pagination 是出路吗?
请建议如何做到这一点。
更新:这是我的代码和我正在尝试做的事情。这是一个视图文件。我有两个列表 1. org_list 2. Ind_list 我试图在两个视图文件(organization_listing,individual_listing)中传递给这两个列表,这两个列表都加载在这个视图文件中,因此出现在同一页面上。现在我可以对一个列表进行分页,但是当我对第二个文件进行分页时,它们都响应相同的 uri 偏移量。
我正在 (organization_listing, individual_listing) 视图文件中生成分页链接。
<?php
$config['base_url'] = 'http://localhost/socialinew/user_registration/index.php/members_area/view_members_area';
$config['total_rows'] = count($org_list);
$config['per_page'] = 4;
$config['num_links'] = 20;
$config['full_tag_open'] = '<div id="pagination3">';
$config['full_tag_close'] = '</div>';
$this->pagination->initialize($config);
for($i=$this->uri->segment(3)+0;$i<(($this->uri->segment(3)+$config['per_page']));$i++)
if(isset($org_list[$i]))
$temp_org[$i]=$org_list[$i];
$tmp_org['org_list']=$temp_org;
$this->load->view('organization/organization_listing',$tmp_org);
$org_config['base_url'] = 'http://localhost/socialinew/user_registration/index.php/members_area/view_members_area/';
$org_config['total_rows'] = count($ind_list);
$org_config['per_page'] = 5;
$org_config['num_links'] = 20;
$org_config['full_tag_open'] = '<div id="pagination2">';
$org_config['full_tag_close'] = '</div>';
$this->pagination->initialize($org_config);
for($i=$this->uri->segment(4)+0;$i<(($this->uri->segment(4)+$config['per_page']));$i++)
if(isset($ind_list[$i]))
$temp_ind[$i]=$ind_list[$i];
$tmp_ind['ind_list']= $temp_ind;
$this->load->view('individual_listing',$tmp_ind);?>
【问题讨论】:
你能举个例子说明你想要达到的目标吗? 如果你不喜欢 ajax ...你可以使用 iframe。 【参考方案1】:如果你愿意
1 2 3 4
results
1 2 3 4
results
我很确定这很简单:
-
只为第一组配置(比如使用 uri 段 3)
初始化分页
创建链接;和
将其发送到视图。
然后
-
为第二组配置(比如使用 uri 段 4)
初始化分页
创建链接;和
将其发送到视图。
【讨论】:
这种情况下如何设置base url? 你不能用$config['base_url']
设置它吗?并使用$config['uri_segment'] = <number>;
告诉哪些段是有意义的改变。查看 url helper 上的文档以帮助设置基础。
是的,我已将第一个分页设置为查找 uri 段 3,将第二个分页设置为 uri 段 4。但我不知道如何在 $config[base_url] 中为第三个 uri 传递通配符部分。还通过了 url helper 但看不到有什么可以帮助我。可能会错过一些东西。
你能从当前的 uri 段构建它吗?
我尝试使用当前的 uri 段构建它,但是对于第一页,页面偏移量为空,即 baseurl/,而对于第二页,它变为 5,即 baseurl/5。现在,当偏移量为空时,我的第二个分页在单击时会创建一个类似 baseurl/5 的偏移量,当它从分页 1/5 变为 baseurl/offset 时。总的来说,它的工作原理很奇怪。【参考方案2】:
伙计们,我终于使用 javascript 将我的个人分页加载到页面中,所以我将我的分页发送到三个不同的视图中,然后使用 javascript 将这些视图调用到页面中。想不出任何方法可以在同一页面上进行多个分页。
【讨论】:
伙计们,我在一年前问过这个问题,从那时起使用 codeigniniter,javascript 我意识到如果您使用 codeigniter 的分页,您的选择会受到严格限制。它是为非常基本的用途而构建的,当您尝试出于自己的目的对其进行自定义时,您会遇到一些限制。相反,如果您可以构建自己的 javascript ajax 调用来构建自己的分页,那么您将能够构建更多功能。 知道怎么做吗?我也有这个问题..帮助。 @Vincent 如果您对 jquery-ajax 调用感到满意/舒适,您可以将其用于分页。您可以在控制器中加载您的记录,并从前端发送 ajax 调用,参数指定您想要拉入前端的记录范围。一年前,当我提出这个问题时,我对 ajax 不太满意,因此期待 codeigniter 的原生功能能够正常工作。但事实证明,jquiery/ajax 是一种更好的方法。 嗯,我只是 ajax 和 jquery 的新手。 :(以上是关于在codeigniter中在一页上进行多个分页的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章