codeIgniter pagination- не переходит к следующей ссылке результатов поиска

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

Если у кого-то есть идея, дайте мне помощь, чтобы выяснить, что не так в моем коде.

Модель

function search_bookings($time, $title, $payment, $start_date, $end_date,$limit, $start, $type) { $this->db->select('reservations.*'); $this->db->from('reservations'); $this->db->where('is_deleted', '0'); $this->db->order_by('date_cal',"desc"); if (!empty($time) && !is_null($time)) { $this->db->where('reservations.type', $time); } if (!empty($payment) && !is_null($payment)) { $this->db->where('reservations.advanced_payment_status', $payment); } if (!empty($title) && !is_null($title)) { $this->db->where('reservations.title', $title); } if (!empty($start_date) && !is_null($start_date)) { $this->db->where('reservations.date_cal >=', $start_date); $this->db->where('reservations.date_cal <=', $end_date); } if ($type == 'half') { $this->db->limit($limit, $start); } $query = $this->db->get(); return $query->result(); } 

контроллер

  function search_reservations($start = 0) { $reservation_service = new Reservation_service(); $config = array(); $config["base_url"] = site_url() . "/dashboard/manage_bookings/"; $config["per_page"] = 10; $config["uri_segment"] = 4; $config["num_links"] = 4; $time = $this->input->post('type', TRUE); $title = $this->input->post('title', TRUE); $payment = $this->input->post('payment', TRUE); $date_from = $this->input->post('date_from', TRUE); $date_to = $this->input->post('date_to', TRUE); $searched_results = $reservation_service->search_bookings($time, $title, $payment, $date_from, $date_to, $config["per_page"], $start, 'half'); $data['search_results'] = $searched_results; $config["total_rows"] = count($reservation_service->search_bookings($time, $title, $payment, $date_from, $date_to, $config["per_page"], 0, 'all')); $this->pagination->initialize($config); $data["links"] = $this->pagination->create_links(); $this->load->view('body_pages/search_results', $data); } 

Просмотр результатов поиска

 <table class="display table table-bordered table-striped" id="bookings_table"> <thead> <tr> <th>#</th> <th>Date</th> <th>Hall</th> <th>Time</th> <th>Actions</th> </tr> </thead> <tbody> <?php $i = 0; foreach ($search_results as $result) { ?> <tr id="bookings_<?php echo $result->id; ?>"> <td><?php echo ++$i; ?></td> <td><?php echo $result->date_cal; ?></td> <td><?php if ("RP" == $result->title) { ?><?php echo "Royal Princess Ballroom (Downstairs)"; } ?> <?php if ("GK" == $result->title) { ?><?php echo "Grand Kings Ballroom (Upstairs)"; } ?> </td> <td><?php echo $result->type; ?></td> <td align="center"> <a class="btn btn-primary btn-xs" onclick="display_edit_reservation_pop_up(<?php echo $result->id; ?>)"><i class="fa fa-pencil" title="Update"></i></a> <a class="btn btn-danger btn-xs" onclick="delete_bookings(<?php echo $result->id; ?>)" ><i class="fa fa-trash-o " title="Remove"></i></a> </td> </tr> <?php } ?> </tbody> </table> <div class="pagination"> <?php echo $links; ?> </div> 

Привет, пожалуйста, найдите ниже код контроллера с классами разбивки на страницы

 /* start code of pagination */ $config = array(); $config["base_url"] = base_url()."cms/manage_cms"; if (count($_GET) > 0) $config['suffix'] = '?' . http_build_query($_GET, '', "&"); if (count($_GET) > 0) $config['first_url'] = $config['base_url'].'?'.http_build_query($_GET); $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; //$page = 0; $config["total_rows"] = count($this->mdl_cms->getAllCmsByCondition($searchindex,$orderField,$orderby,$rowsPerPage,$page,false)); if($config["total_rows"] < $rowsPerPage){ $page = 0; } $config["per_page"] = $rowsPerPage; //$config["uri_segment"] = 3; $config['full_tag_open'] = '<div class="pagination"><ul>'; $config['full_tag_close'] = '</ul></div><!--pagination-->'; $config['first_link'] = '&laquo; First'; $config['first_tag_open'] = '<li class="prev page">'; $config['first_tag_close'] = '</li>'; $config['last_link'] = 'Last &raquo;'; $config['last_tag_open'] = '<li class="next page">'; $config['last_tag_close'] = '</li>'; $config['next_link'] = 'Next &rarr;'; $config['next_tag_open'] = '<li class="next page">'; $config['next_tag_close'] = '</li>'; $config['prev_link'] = '&larr; Previous'; $config['prev_tag_open'] = '<li class="prev page">'; $config['prev_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li class="active"><a href="">'; $config['cur_tag_close'] = '</a></li>'; $config['num_tag_open'] = '<li class="page">'; $config['num_tag_close'] = '</li>'; $this->pagination->initialize($config); // Load pagination class $usersArr = $this->mdl_cms->getAllCmsByCondition($searchindex,$orderField,$orderby,$rowsPerPage,$page,true); //echo $this->db->last_query(); //die; $data["links"] = $this->pagination->create_links(); // Create pagination links 

Надеюсь, это сработает для вас

Попробуйте добавить

 $config['use_page_numbers'] = TRUE; 

И сделать

 $config['uri_segment'] = 4; 

к

 $config['uri_segment'] = 3; 

Может потребоваться настроить ваши маршруты.php

 $routes['dashboard/manage_bookings/(:any)'] = "dashboard/manage_bookings/$1" 

CI2 http://www.codeigniter.com/userguide2/general/routing.html

CI3 http://www.codeigniter.com/user_guide/general/routing.html

Вы берете переменные $ time, $ title, $ payment, $ date_from, $ date_to из POST.

Ссылки на пассификацию похожи на: home / search_reservations / 2

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

2 способа сделать это –

1) используйте GET вместо POST. сохраните свои параметры поиска в строке запроса ваших сгенерированных ссылок на страницы. Таким образом, все страницы будут иметь параметры поиска. Также полезно, если вы хотите поделиться / пометить определенную страницу результата поиска. Например, ваши страницы будут связаны как –

 www.yoursite.com/home/search_reservations/2?time=123&title=123&payment=123&date_from=123&date_to=123 

2) сохранить параметр поиска в сеансе. В коде больше бесполезно, но красивее в URL.