我正在为搜索结果使用分页。搜索工作完美。搜索后显示前 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();
}
Controller
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);
}
搜索结果 View
<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>
最佳答案
嘿嘿,请找到下面带有分页类的 Controller 代码
/* 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'] = '« First';
$config['first_tag_open'] = '<li class="prev page">';
$config['first_tag_close'] = '</li>';
$config['last_link'] = 'Last »';
$config['last_tag_open'] = '<li class="next page">';
$config['last_tag_close'] = '</li>';
$config['next_link'] = 'Next →';
$config['next_tag_open'] = '<li class="next page">';
$config['next_tag_close'] = '</li>';
$config['prev_link'] = '← 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
希望对你有用
关于php - codeIgniter 分页 - 不会转到搜索结果的下一个链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31242238/