【问题标题】:Code Igniter Pagination and URL passed method argumentsCodeigniter 分页和 URL 传递的方法参数
【发布时间】:2013-08-13 17:54:48
【问题描述】:

我的问题是,当我按下分页链接时,URL CHANGE 和段数组也是如此,首先我从这个 URL 开始:

site/argument/argument

当我按下分页链接时,URL 变成:

site/method/startIndex.

有没有办法在不使用 URL 查询索引的情况下使用分页?

编辑:

这是我从 URL 接收参数的控制器方法:

function index ($par1, $par2 = null, $par3 = null)
{       
    $data['records'] = $this->site_model->getRecords($par1, $par2, $par3);

    $this->load->view('main', $data);
}

这是我进行数据库查询的模型方法:

function getRecords($par1, $par2 = null, $par3 = null )
{
    if (!isset($par2) && !isset($par3)) {
        $where = "lvlOne = '".$par1."'";

    } elseif(isset($par2) && !isset($par3)) {
        $where = "lvlOne = '".$par1."' AND lvlTwo = '".$par2."'";

    } elseif(isset($par2) && isset($par3)) {
        $where = "lvlOne = '".$par1."' AND lvlTwo = '".$par2."' AND lvlThree = '".$par3."'";
    }

    $this->db->from('mph_products');
    $this->db->where($where);
    $query = $this->db->get();


    return $query->result();
}

如何对结果进行分页?因为我和分页库 URL 有冲突

编辑:

我找到了一种方法来做我想做的事。 分页库有一个配置选项,您可以在其中放置分页锚的后缀,您可以将参数传递给它。

$config['suffix'] = "$arg1/$arg2/$arg3";

:D

【问题讨论】:

    标签: php codeigniter pagination codeigniter-routing


    【解决方案1】:

    本库codeigniter分页+引导设计

    <?php
    
    class Paginacao
    {
    public $CI;
    
    function __construct() {
        $this->CI = &get_instance();
        $this->CI->load->library('pagination');
    
    }
    
    function criar($total_rows,$base_url,$per_page=15,$num_links=5)
    {
        $paginacao['total_rows'] = $total_rows;
    
            $paginacao['base_url'] = site_url($base_url);
            $paginacao['per_page'] = $per_page;
            $paginacao['num_links'] = $num_links;
    
            $paginacao['full_tag_open'] = '<br /><div class="pagination pagination-centered"><ul>';
            $paginacao['full_tag_close'] = '</ul></div>';
    
            $paginacao['first_link'] = 'Primeira';
            $paginacao['first_tag_open'] = '<li>';
            $paginacao['first_tag_close'] = '<li>';
    
            $paginacao['last_link'] = 'Ultima';
            $paginacao['last_tag_open'] = '<li>';
            $paginacao['last_tag_close'] = '</li>';
    
            $paginacao['next_link'] = 'Próximo';
            $paginacao['next_tag_open'] = '<li>';
            $paginacao['next_tag_close'] = '</li>';
    
            $paginacao['prev_link'] = 'Anterior';
            $paginacao['prev_tag_open'] = '<li>';
            $paginacao['prev_tag_close'] = '</li>';        
    
            $paginacao['cur_tag_open'] = '<li class="active"><a href="#">';
            $paginacao['cur_tag_close'] = '</a></li>';
    
            $paginacao['num_tag_open'] = '<li>';
            $paginacao['num_tag_close'] = '</li>';
    
            $this->CI->pagination->initialize($paginacao);
            $html = $this->CI->pagination->create_links();
    
        return $html;
    }
    

    }

    【讨论】:

    • 我不知道这是做什么的。你能给我解释一下吗?
    【解决方案2】:

    据我了解,您不希望在 url 中看到页码,但 CI Pagination 类总是在链接中添加数字。更多详情请见Pagination class

    您也可以使用jquery datatable 进行客户端或服务器分页。

    【讨论】:

    • 我在某处读到有一种方法可以将分页类与 AJAX 一起使用,但看不到 url 中的数字
    • 是的,当然你可以使用 Ajax。请看我更新的答案。
    猜你喜欢
    • 2013-05-07
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多