在codeigniter中自定义分页create_links()

时间:2014-02-18 03:08:11

标签: javascript php jquery codeigniter pagination

<?php foreach(range('A', 'Z')as $key=>$letter)
      {
        echo anchor('KitchenGuruAdminController/Admin_recipe_browse/'.$letter, ' '.$letter);
      }
      echo "<BR><BR>";
 ?>

<table  cellpadding='5'>
<th>Delete</th>
<th></th>
<th>Id</th>
<th>Recipe name</th>
<th>Edit</th>

<?php if(isset($records)) : foreach($records as $recipe) : ?>   
        <tr>
        <td><input type="checkbox" name="idsToDelete[]" value="<?=$recipe['recipeid']?>" /><td>
        <td><?php echo $recipe['recipeid'] ?></td>
        <td><?php echo $recipe['recipename'] ?></td>
        <td><?php echo anchor('KitchenGuruAdminController/Admin_recipe_edit/'.$recipe['recipeid'], 'Click'); ?></td>
        </tr>
<?php endforeach; ?>
        <tr><?php echo $this->pagination->create_links(); ?></tr>
<?php else : ?>
<h5>Recipe Database Empty.</h5>
<?php endif; ?>
</table>
</br></br><input type="submit" name="delete_button" onclick="delete_alert()"value="Delete"/>
<?php form_close(); ?>

上面的代码是我的视图,没关系按钮和复选框,它们用于删除行。

我已成功分页我的结果。并从A-Z创建链接并将相应的字母作为段发送。

这是我的分页浏览控制器:

function Admin_recipe_browse()
    {
        $character = $this->uri->segment(3);

        $config['base_url'] = base_url() . 'index.php/KitchenGuruAdminController/Admin_recipe_browse';
        $config['total_rows'] = $this->KitchenGuruAdminModel->browse_total_rows();
        $config['per_page'] = 5;
        $config['num_links'] = 10;
        $config['uri_segment'] = 3;

        $this->pagination->initialize($config);

        $data['records'] = $this->KitchenGuruAdminModel->get_records($character,$config['per_page'], $this->uri->segment(3));
        //$data['records'] = $this->KitchenGuruAdminModel->get_records($config['per_page'], $this->uri->segment(3));
        $data['links'] = $this->pagination->create_links();
        $this->load->view('Admin_recipe_browse', $data);
    }

代码工作正常,如果我点击A.它只会显示A作为第一个字符的结果。问题是当我点击分页链接时。它将我信中的uri段替换为数字($config['per_page'];

所以当我在分页链接上回到第1页时,它不会过滤字符链接的结果。

示例,

  

/ SEGMENT1 /分段2 / A

点击我使用foreach范围制作的链接后,这是我的网址。

我的分页设置为每页只显示5个,所以当我点击第2页时,网址就会变为。

  

/ SEGMENT1 /分段2/5

回到我的问题,我想到了一个解决方案,将我的角色过滤器设置为段(3),将per_page设置为段(4)。

问题是我不知道如何自定义$this->pagination->create_links();

目前在ellislab上阅读分页类文档,尽管它在create_links函数上没有解决太多问题。是否有任何参数可以传递给它以使其在段(4)上写入。

1 个答案:

答案 0 :(得分:0)

使分页的基本网址适合您的角色:

$character = $this->uri->segment(3);
$config['base_url'] = base_url(). 'index.php/KitchenGuruAdminController/Admin_recipe_browse/'.$character;

并且还要更改

$config['uri_segment'] = 4;