在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'] = &lt;number&gt;; 告诉哪些段是有意义的改变。查看 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中在一页上进行多个分页的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

Excel中一页上有很多表格怎样设置为打印出来一页一个表格

Laravel Livewire 在一页中进行多个分页

tp5 的 分页 只有一页的数据 怎么让它的第一页显示出来

分页的实现

codeigniter 分页 - 结果在每一页上保持不变

excel多个文件批量删除第一列的内容,但保留表头