Codeigniter Pagination - я в тупике - PullRequest
5 голосов
/ 30 марта 2010

Хорошо, я отлично следовал инструкциям в примере. В конечном итоге, нумерация страниц работает.

Я получаю все перечисленные страницы: 1 | 2 | > | Прошлой. И т.д.

Первый активен, как и должно быть. Я также сделал запрос правильно, потому что каждая ссылка приведет к правильному запросу.

Однако, когда я нажму на номер 2, он покажет мне следующий набор продуктов правильно, но он покажет нумерацию страниц с первой страницы.

Какая бы кнопка пагинации не нажималась, вернется основной набор пагинации: 1 (выбрано) | 2 | > | Прошлой. Это никогда не меняется! Я теряю терпение, кто-то может помочь?

Ответы [ 3 ]

10 голосов
/ 01 апреля 2010

Я думаю, я мог бы знать, что происходит.Вы должны указать библиотеке разбивки на страницы, какой сегмент URL содержит смещение.

Например, если ваш URL-адрес / products / browse / all / 20, вы должны сообщить CodeIgniter, что 4-й сегмент содержит смещение

$config['uri_segment'] = 4;

По умолчанию для библиотеки используется URL-адрес.сегмент № 3.Если смещение в вашем URL не находится в позиции 3, и вы забыли сообщить об этом библиотеке разбивки на страницы, он будет интерпретировать неправильный сегмент как смещение.Это может привести к описанному выше типу поведения, при котором нумерация страниц не изменяется.

1 голос
/ 22 декабря 2011

Я тоже столкнулся с той же ошибкой и наконец смог ее исправить. Просто подумал поделиться кодом скрипта, может быть кто-то сможет его использовать.

=====> Контроллер

// 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>
0 голосов
/ 31 марта 2010

Какой пример?

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

^^ Это на ваш взгляд?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...