我正在使用 Codeigniter 分页库,
我想知道如何获取使用分页类显示的第一个和最后一个项目的数量?
所以,如果我有 12 个结果,并且 per_page 设置为 5。我想要
第 1 页:Displaying 1 to 5 of 12 results
第 2 页:Displaying 6 to 10 of 12 results
第 3 页:Displaying 11 to 12 of 12 results
。
我正在使用 Codeigniter 分页库,
我想知道如何获取使用分页类显示的第一个和最后一个项目的数量?
所以,如果我有 12 个结果,并且 per_page 设置为 5。我想要
第 1 页:Displaying 1 to 5 of 12 results
第 2 页:Displaying 6 to 10 of 12 results
第 3 页:Displaying 11 to 12 of 12 results
。
保持简单。
你需要3个变量。结果开始,结果结束(在页面中,而不是整个)和总结果。
您已经知道总结果(来自分页)。让我们称之为$total
。
$curpage
所以,现在从 CI 实例获取当前页面 ( ) 值。然后,
$result_start = ($curpage - 1) * $per_page + 1;
if ($result_start == 0) $result_start= 1; // *it happens only for the first run*
对于$result_end
,您只需要添加每页值,但考虑到它会少 1,
$result_end = $result_start+$per_page-1;
if ($result_end < $per_page) // happens when records less than per page
$result_end = $per_page;
else if ($result_end > $total) // happens when result end is greater than total records
$result_end = $total;
发送所有这 3 个值以查看。
echo "displaying $result_start to $result_end of $total";
itachi 的解决方案效果很好,除非您需要处理最后一页的元素少于 $per_page 的情况。
if ($result_end > $total) {
$result_end = $total;
}
在 CodeIgniter 控制器文件中
$params['limit'] = 15;
$params['offset'] = ($this->input->get('per_page')) ? $this->input->get('per_page') : 0;
$config = $this->config->item('pagination');
$config['per_page'] = $params['limit'];
$config['base_url'] = site_url('cy_controller/action?');
$config['total_rows'] = $this->abcd_model->get_count($params);
$this->pagination->initialize($config);
$data['merchant'] = $this->abcd_model->get_all($params);
$countMerchant = count($data['merchant']);
if ($params['offset'] == 0) {
$find_total_record = $countMerchant;
} else {
$valuec = $params['offset'] + $params['limit'];
if ($valuec > $config['total_rows'])
$find_total_record = $params['offset'] + $countMerchant;
else
$find_total_record = $params['offset'] + $params['limit'];
}
$per_page_total = $find_total_record;
$initial = $params['offset'] == 0 ? 1 : $params['offset'];
$data['showing'] = "Showing " . $initial . " to " . $per_page_total . " of " . $config['total_rows'] . " results";
$data['_view'] = 'cy_controller/action';
$this->load->view('layouts/main', $data);
并在视图文件中
<div class="pull-left">
<?php echo $showing; ?>
</div>