Code Igniter Разбиение на страницы и URL-адрес передали аргументы метода

Моя проблема в том, что когда я нажимаю на ссылку разбивки на страницы, URL-адрес ИЗМЕНЯЕТСЯ, а также массив сегментов, сначала я начал с этого 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


person Facu Ferrari    schedule 13.08.2013    source источник


Ответы (2)


Эта библиотека 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;
}

}

person trocado    schedule 13.08.2013
comment
Я не могу понять, что это делает. Можете ли вы объяснить мне, пожалуйста? - person Facu Ferrari; 13.08.2013

Как я понимаю, вы хотите не видеть номер страницы в URL, но класс CI Pagination всегда добавляет номер к ссылке. Дополнительные сведения см. в классе разбиения на страницы.

Также вы можете использовать jquery datatable для разбиения на страницы клиента или сервера.

person joni jones    schedule 13.08.2013
comment
Я где-то читал, что есть способ использовать класс разбиения на страницы с AJAX и не видеть числа в URL-адресе. - person Facu Ferrari; 13.08.2013
comment
Да, конечно, вы можете использовать Ajax. Пожалуйста, смотрите мой обновленный ответ. - person joni jones; 13.08.2013