CI分页参数继续附加到base_url

时间:2015-01-31 11:32:39

标签: php codeigniter pagination

我正在使用CodeIgniter实现一个带分页的行列表。问题是,每次点击下一页时,它都会不断附加&page=n

例如,最初我的网址是

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字符串吗?我以为它会自动重写它。

分页配置如下。

$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;

思想?

2 个答案:

答案 0 :(得分:1)

请添加此类型的base_url

http://example.com/search/?a=1&b=2
$page_config['base_url'] = http://example.com/search/?a=1&b=2;

答案 1 :(得分:1)

这是不正确的

$page_config['base_url'] = $this->config->item('app_root') . $_SERVER['REQUEST_URI'];

Codeigniter分页使用&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

您的基本网址应该是固定的,而不是动态的。 它应该是

$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']);