Codeigniter分页 - 我很难过

时间:2010-03-30 19:48:02

标签: php codeigniter codeigniter-pagination

好的,我完全按照示例中的说明操作。最终,分页工作,有点。

我列出了所有页面:1 | 2 | > |持续。等等。

第一个是活跃的,就像它应该的那样。我也正确地进行了查询,因为每个链接都会产生正确的查询。

然而,当我点击数字2时,它会正确显示下一组产品,但它会显示第一页的分页。

无论我点击什么分页按钮,都会返回主分页集:1(选中)| 2 | > |持续。它永远不会改变!我失去了耐心,有人可以帮忙吗?

3 个答案:

答案 0 :(得分:10)

我想我可能知道最新情况。您需要告诉分页库URL的哪个段包含偏移量。

例如,如果您的网址是/ products / browse / all / 20,则需要告诉CodeIgniter第4个网段是否包含偏移量

$config['uri_segment'] = 4;

库的默认值是URL段#3。如果您的URL中的偏移量不在位置3并且您忘记告诉分页库,则它会将错误的段解释为偏移量。这可能会导致您在上面描述的行为,其中分页似乎没有变化。

答案 1 :(得分:1)

我也遇到了同样的错误,最后能够修复它。只是想分享代码脚本,可能有人就能使用它。

=====>控制器

// Default function
function index()
{   
    // Display listing      
    $this->listing();           
}

function listing($argDataArr = array()) 
{   

    // Initialize pagination
    $pageArr['base_url']    = $this->config->item('categoryBeAction')."/listing";
    $pageArr['total_rows']  = 15; //assume
    $pageArr['per_page']    = 5; //assume
    //You need to tell the pagination library which segment of the URL holds the offset.        
    $pageArr['uri_segment']  = 4; //URL eg: http://localhost/myproject/index.php/backend/category/listing/5 
    $this->pagination->initialize($pageArr); 

    // Get list of categories
    // Create data array and pass data to get function
    $dataArr['limitRows']    = $pageArr['per_page'];
    $dataArr['limitOffset']  = $this->uri->segment(4); //the dynamic value from this segment will be used as offSet
    $viewArr['listArr'] = $this->category_model->get($dataArr);

    //rest of the code...

}   

==>模型

function get($argDataArr = array())
{   

    //Select the fields required
    $this->db->select('id, name, parent_id, status');
    $this->db->from($this->config->item('tbl_category','dbtables'));

    $this->db->where('parent_id', $parentId);   
    $this->db->limit($argDataArr['limitRows'], $argDataArr['limitOffset']); 
    $this->db->order_by("name", "asc");
        $query_result = $this->db->get(); 

    return  $query_result;
}

==>查看页面

            <!--  Pagination -->                    
            <tr> 
            <td align="right">
                <?php  echo $this->pagination->create_links(); ?>                           
            </td> 
            </tr>

答案 2 :(得分:0)

哪个例子?

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

^^这是你的观点吗?