Я реализую список строк с разбивкой по страницам с помощью CodeIgniter. Проблема заключается в том, что он сохраняет appending &page=n
каждый раз, когда я нажимаю на следующей странице.
например, изначально, если мой URL-адрес
http://example.com/search/?a=1&b=2&page=1
и когда я нажимаю на второй странице, он становится
http://example.com/search/?a=1&b=2&page=1&page=2
Я пробовал играть с конфигами, но, похоже, не работал должным образом. Это как-то связано с base_url
? должен ли я динамически создавать base_url
строку без последнего параметра &page=n
? Я думал, что он автоматически перепишет его.
pagination configs следующие.
$page_config['base_url'] = $this->config->item('app_root') . $_SERVER['REQUEST_URI'];
$page_config['total_rows'] = $result['total'];
$page_config['per_page'] = 10;
$page_config['page_query_string'] = TRUE;
$page_config['query_string_segment'] = 'page';
$page_config['use_page_numbers'] = TRUE;
Мысли?
Это неверно
$page_config['base_url'] = $this->config->item('app_root') . $_SERVER['REQUEST_URI'];
Codeigniter pagination add &page=n
с config['base_url']
Но ваш base_url меняется каждый раз на разных страницах
$page_config['base_url']='http://example.com/search/?a=1&b=2';//for first time and codeigniter added $page=1
$page_config['base_url']='http://example.com/search/?a=1&b=2&page=1';//for 2nd time and codeigniter added $page=2
$page_config['base_url']='http://example.com/search/?a=1&b=2&page=1&page=2';//for 3rd time and codeigniter added $page=3
Ваш базовый url должен быть исправлен и не быть динамичным. Должен быть
$page_config['base_url']='http://example.com/search/?a=1&b=2';
вы можете сделать это так, но это плохо
$page_config['base_url'] = $this->config->item('app_root') . str_replace("&page=".$_GET['page'],"",$_SERVER['REQUEST_URI']);
Добавьте base_url этого типа
http://example.com/search/?a=1&b=2
$page_config['base_url'] = http://example.com/search/?a=1&b=2;