我不确定我要问的是否有可能......我想的可能不是,但我想我还是会问。
有没有办法重置分页?
我有一个页面上有分页和排序选项。一切正常,但当其中一个排序选项被更改时,我想将用户发送回第一页。
(我很确定我这样做的方式并不是获得我想要的结果的最佳方式,所以如果你有任何改进建议请随意。)
$array = explode ("_",$this->uri->segment(4));
if(count($array) > 1){
$search_id = $array[1];
$start = $this->uri->segment(5);
$uri_segment = 5;
}else{
$start = $this->uri->segment(4);
$uri_segment = 4;
$search_id = null;
}
$config['per_page'] = $this->settings['PRODUCTS_PER_PAGE'];
$config['total_rows'] = $this->categories_model->get_num_rows($cat_id , $search_type, $search_data);
$query = $this->categories_model->get_category_pages($cat_id, $new_limit, $new_sort, $search_id, $start, $this->settings['CATEGORY_ORDER'], $search_type, $search_data, $config['total_rows']))
$config['base_url'] = base_url() . 'index.php/categories/view/' . $cat_id ."/" . $search_string ;
$config['uri_segment'] = $uri_segment;
//Congig settings for pagination
$config['full_tag_open'] = '<div id="pagination" style= "clear:both;">';
$config['full_tag_close'] = '</div>';
//Initialise pagination
$this->pagination->initialize($config);
答案 0 :(得分:3)
你可以在控制器中保留一个默认排序,它不会显示在url.so排序中也不会回到第一页。
样本
class Post extends Jewelery_Controller {
public function __construct() {
parent::__construct();
$this->load->model('Prime_model');
}
public function index($ordr_by = 'post_title', $sortr = 'ASC') {
if ($this->uri->segment(6)) {
$data['segment'] = $this->uri->segment(6);
} else {
$data['segment'] = 0;
}
if ($this->uri->segment(4)) {
$ordr_by = $this->uri->segment(4);
}
if ($this->uri->segment(5)) {
$sortr = $this->uri->segment(5);
}
$data['title'] = 'All Posts';
$this->load->library('pagination');
$config['base_url'] = base_url() . 'admin/post/index/' . $ordr_by . '/' . $sortr;
$config['full_tag_open'] = '<div class="pagination"><ul>';
$config['full_tag_close'] = '</ul></div>';
$config['cur_tag_open'] = '<li class="active"><a href="">';
$config['cur_tag_close'] = '</a></li>';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['uri_segment'] = 6;
$config['total_rows'] = $this->db->get('jewel_posts')->num_rows();
$config['per_page'] = 10;
$this->pagination->initialize($config);
$data['post_info'] = $this->Prime_model->master_join('jewel_posts', 'jewel_jewelry_type', 'jewel_posts.jewelry_type = jewel_jewelry_type.jewelry_type_id', 'left', FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, $ordr_by, $sortr, $config['per_page'], $data['segment']);
$this->load->view('admin/header', $data);
$this->load->view('admin/post/index');
$this->load->view('admin/footer');
}