3

解决 了我试图在主页上创建分页。

我的默认控制器:

$route['default_controller'] ="home";

问题1: 如果我写分页-

$config['base_url'] = base_url() . 'home/index'; // index function
$config['uri_segment'] = 3;
$config['per_page'] = 10;
$limit = array($config['per_page'] => $this->uri->segment(3));

然后它可以工作,但它在浏览器地址栏上显示“localhost/baseurl/home/index/10”。我只想显示“localhost/baseurl/10”(而“localhost/baseurl/”是我的主页,我想要分页那里)。所以我写了

$config['base_url'] = base_url(); // index function
$config['uri_segment'] = 1;
$config['per_page'] = 10;
$limitt = array($config['per_page'] => $this->uri->segment(1));

但这不起作用。我怎样才能做到这一点 ?

问题2:

如何通过分页链接发送变量值,例如 localhost/baseurl/home/index?search=y/10

我写:

$config['base_url'] = base_url() . 'home/index?search=y';

但这不起作用。它接收search=y/10. 不仅y而且没有找到10分页$this->uri->segment(3))

那么正确的方法是什么?

编辑:

我的 htaccess 代码是:-

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./mysite/index.php [L]

</IfModule>

此代码显示我的站点地址,例如“localhost/mysite/”。但是如果我设置分页的基本网址,例如

$config['base_url'] = base_url();
$config['uri_segment'] = 1;
$config['per_page'] = 10;
$limitt = array($config['per_page'] => $this->uri->segment(1));

然后数字显示在分页链接上,如“localhost/mysite/10”,但脚本未收到值“10”。如果我写——

$config['base_url'] = base_url().'home/index';  // 'index' is the function in 'home' class
$config['uri_segment'] = 3;
$config['per_page'] = 10;
$limitt = array($config['per_page'] => $this->uri->segment(3));

然后它可以工作,但是浏览器地址行变成了我不喜欢的“localhost/mysite/home/index/10”。解决第一个问题的方法是什么?

4

1 回答 1

0

对于第一个问题,您必须rewrite rule在第一条评论中定义 a 。
对于第二个问题,这样做,

if($this->uri->segment(3)){
    $keyword = $this->uri->segment(3);
}
else if($this->input->get('search')){
    $keyword = $this->input->get('search');
}

$config['base_url']     = base_url().'home/index/'.$keyword.'/page/';
$config["uri_segment"]  = 5;
于 2013-08-22T15:34:19.677 回答