Пагинация Codeigniter не работает

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

Пока у меня все хорошо с этим, но проблема возникает с нумерацией страниц. В настоящее время у меня есть восемь строк данных для отображения из моей базы данных, поэтому, чтобы проверить, работает ли нумерация страниц, я установил значение $config['per_page'] равным 5 (пожалуйста, проверьте ниже). И теперь, когда я нажимаю на следующую кнопку, он не показывает никаких данных.

Я думаю, что проблема заключается в том, что когда я нажимаю кнопку «Далее», она снова переходит к контроллеру, но на этот раз контроллер не получает значения, которые пользователь опубликовал в первую очередь.

Не могли бы вы помочь мне с этим?

Заранее спасибо :)

Мой контроллер:

   function show(){

            $batchid=$this->input->post('batchid');
            $daterange1=$this->input->post('daterange1');
            $daterange2=$this->input->post('daterange2');



            $this->load->library('pagination');

                    $config['base_url'] = base_url().'markslist/show';

                    $this->db->select('*');
                        $this->db->from('marks');
                        $this->db->where('examdate', $daterange1); 
                        $this->db->where('examdate', $daterange2); 

                        $this->db->join('student', 'marks.studentid = student.studentid');
                        $this->db->where('batchid', $batchid); 
                        $this->db->order_by('batchid','DESC');
                        $query = $this->db->get('');
                        $numrows=$query->num_rows(); 

                    $config['total_rows'] = $numrows;
                    $config['per_page'] = 5;
                    $config['num_links'] = 20;
                    $config['full_tag_open'] = '<div class="pagination" align="center">';
                    $config['full_tag_close'] = '</div>';

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


            // To get the subject lists
            $this->load->model('mod_markslist');
            $data['records']= $this->mod_markslist->listmarks($batchid,$daterange1,$daterange2,$config['per_page'],$this->uri->segment(3));



            $data['main_content']='view_markslist';
            $this->load->view('includes/template',$data);

    }

person black_belt    schedule 23.11.2011    source источник


Ответы (1)


Я бы скопировал исходные опубликованные данные в сеанс:

if($this->input->post()){
    $this->session->set_userdata('batchid', $this->input->post('batchid'));
    $batchid = $this->input->post('batchid');
    /* similar for the other posted fields */
}
else{
    $batchid = $this->session->userdata('batchid');
    /* similar for other fields now in session */
}
/* load pagination library etc */

Лучше также проверить, доступна ли информация в сеансе.

person Mudshark    schedule 24.11.2011