我有一个图片库;我正在尝试做的是显示图像的简单分页;在每个页面中我只显示18张图片的方式! 所以我在我的控制器中尝试了以下代码:
$this->load->model('Gallery_model');
$data['images'] = $this->Gallery_model->get_images(18, $this->uri->segment(3));
$this->load->library('pagination');
$config['base_url'] = 'http://localhost/Gallery/index.php/gallery/index/';
$config['total_rows'] = count($this->Gallery_model->get_all_images());
$config['per_page'] = 18;
$this->pagination->initialize($config);
$data['main_content'] = "gallery";
$this->load->view('includes/template', $data);
在我的Gallery_model中,我处理的方式是每次基于uri->段显示18张图像。如果您需要我的模型方法:
public function get_images($per_page, $segment) {
$files = scandir($this->gallery_path . "\output");
$newFiles = array_diff($files, array('.', '..', 'thumbs'));
$images = array();
foreach ($newFiles as $file) {
$images[] = array(
'url' => $this->gallery_path_url . 'output/' . $file,
'thumb_url' => $this->gallery_path_url . 'output/' . $file,
);
}
$newImage = array();
if ((($segment * $per_page)+$per_page) < count($images)) {
for ($i = 0; $i < $per_page; $i++) {
$newImage[$i] = $images[($segment * $per_page) + $i];
}
}else
{
for ($i = 0; $i < count($images)-($segment * $per_page); $i++) {
$newImage[$i] = $images[($segment * $per_page) + $i];
}
}
return $newImage;
}
public function get_all_images() {
$files = scandir($this->gallery_path . "\output");
$newFiles = array_diff($files, array('.', '..', 'thumbs'));
$images = array();
foreach ($newFiles as $file) {
$images[] = array(
'url' => $this->gallery_path_url . 'output/' . $file,
'thumb_url' => $this->gallery_path_url . 'output/' . $file,
);
}
return $images;
}
现在一切都很好我有25张图片(超过18张图片),我应该有两页,我有2页,但问题是当我点击第二页时,网址就到了。 ... / index / 18而不是.... / index / 1
可能是什么问题?
我可能不太清楚,如果您需要更多说明,请告诉我。
由于
答案 0 :(得分:2)
分页是可以的,它会去/ index / 18,使用这个uri -
段(3)作为偏移量 您的查询以获取下一组 结果
答案 1 :(得分:1)
我的理解是你希望下一页索引/ 2然后索引/ 3等等而不是索引/ 18。 Codeigniter默认情况下会将url添加到下一页的起始位置,这意味着页面将从数据库中的记录18开始。
我认为你想要的是
$ config ['use_page_numbers'] = TRUE; 默认情况下,URI段将使用您要分页的项的起始索引。如果您希望显示实际页码,请将其设置为TRUE。
http://ellislab.com/codeigniter/user-guide/libraries/pagination.html