Php 带有get参数的codeigniter分页url
在URL中传递参数时,在codeigniter上设置分页时遇到问题 如果我的url是这样的:Php 带有get参数的codeigniter分页url,php,codeigniter,Php,Codeigniter,在URL中传递参数时,在codeigniter上设置分页时遇到问题 如果我的url是这样的:search/?type=groups 要使分页工作,我的$config['base_url']应该是什么 如果我将基本url设置为search/?type=groups,则生成的url为search/?type=groups/10 这意味着$\u GET['type']=groups/10 谢谢希望您能在本页找到答案: . 如果可以,请重新编辑您的答案。解决方案是CodeIgniter不能像那样工作。
search/?type=groups
要使分页工作,我的$config['base_url']
应该是什么
如果我将基本url设置为search/?type=groups
,则生成的url为search/?type=groups/10
这意味着$\u GET['type']=groups/10
谢谢希望您能在本页找到答案:
. 如果可以,请重新编辑您的答案。解决方案是CodeIgniter不能像那样工作。 我需要的是“type”中每个选项的方法(在控制器中) 所以一个选项是一个叫做组的方法,另一个叫做条目等等 每个方法根据需要引用不同的模型类或方法 我正在努力更好地理解OOP和CI…做一些调整。。。如果我错了,请随意评论和纠正我。
谢谢你我今天也在为同样的问题挣扎。我的解决办法是:
$pagination=$this->pagination->create_links();
)<?php
$query = '?myvar=myvalue';
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
$unique = array();
if( preg_match_all("/$regexp/siU", $pagination, $matches) )
{
foreach ( $matches[2] as $link )
{
if ( !isset($unique[$link]) )
{
$data['pagination'] = str_replace($link . '"', $link . $query . '"', $data['pagination']);
$unique[$link] = '';
}
}
}
unset($unique);
如果您使用的是codeigniter 2,则在config.php
中有一个选项,$config['allow\u get\u array']
-确保其为TRUE
然后将分页选项$config['page\u query\u string']
设置为TRUE
最后,在将$config['base\u url']
设置为“search/?type=groups”
的情况下,分页将在其后面附加每页查询字符串
它应该是这样工作的,您将在$this->input->get(“每页”)
中获得偏移量
代码很强 在分页配置中:
if (count($_GET) > 0) $config['suffix'] = '?' . http_build_query($_GET, '', "&");
您当前的$\u GET
变量将显示在分页链接中。
您可以用另一个关联数组替换$\u GET
。
除非已经存在查询字符串,否则不会添加查询字符串
更新:
我刚刚看到,如果您从另一个页码返回,单击第一个(1),CI不再关心您的后缀配置
要修复此问题,请使用$config['first\u url']
e、 g:$config['first\u url']=$config['base\u url'].?'。http\u build\u query($\u GET)代码>以下是我的jquery解决方案:
只需将分页链接包装在div中,如下所示:
$config['full_tag_open'] = '<div id="pagination">';
$config['full_tag_close'] = '</div>';
base_url() . /search/?term=
对我来说很好。我也有同样的问题。我的解决方案是修改分页并将其放入应用程序/库中。
首先我创造
var $get='';
并找到所有“a”元素,并在href=“…..”$this->get.'>..中添加$get.
现在在控制器或模型输入行中
$config['get']=(isset($_GET['search']))?'?search='.$_GET['search']:'';
就这样!我希望它能对您有所帮助。使用$config['suffix']是IMO实现这一点的最佳方式,因为它不需要像正则表达式解决方案那样进行任何额外处理$config['suffix']用于呈现system/libraries/Pagination.php文件中的create_links函数中的URL,因此如果您设置该值,它将用于生成URL,并且不需要再进行处理,这意味着它会更快
谢谢你的帖子,这为我节省了很多额外的,不需要的编码 我想你正在尝试做与我尝试做的相同的事情,我通过不设置基本url使它正常工作,并且使用此设置使我不必手动编辑库
$this->load->library('pagination');
$config['use_page_numbers'] = TRUE;
$config['page_query_string'] = TRUE;
$config['total_rows'] = 200;
$config['per_page'] = 20;
$this->pagination->initialize($config);
行前:
$this->base_url = rtrim($this->base_url).'&'.$this->query_string_segment.'=';
将此代码替换为以下代码:
if(isset($_GET[$this->query_string_segment]))
{
unset($_GET[$this->query_string_segment]);
}
$uri = http_build_query($_GET);
$uri = empty($uri) ? '?' : $uri . '&';
$this->base_url = rtrim($this->base_url).$uri.$this->query_string_segment.'=';
看看吧。
只需更新修改后的分页类,然后添加
$config['get'] = "?string=" . $_REQUEST['string']."&searchBy=" . $_REQUEST['searchBy'];
在控制器中:
$config['anchor_class']=“class='link-pagination'”
在你看来:
$(".link-pagination").each(function() {
$(this).attr("href", $(this).attr('href') + "?id=<?= $this->input->get('id') ?>");
});
$(“.link分页”).each(函数(){
$(this.attr(“href”),$(this.attr('href')+“?id=”);
});
也有同样的问题,但意识到较新版本的CI在分页类中定义了后缀。尽管文档中还没有。无需破解。我遇到过类似的问题,根据上述答案,我需要根据自己的需要进行定制
我的URI应该是这样的:
$config['full_tag_open'] = '<div id="pagination">';
$config['full_tag_close'] = '</div>';
base_url() . /search/?term=
因此,以下是我所做的:
$config['base_url'] = base_url ."/search/?term=" . $_GET['term']
这个问题的最新答案是
应通过启用以下配置来启用查询字符串的重用:
$config['reuse_query_string'] = true;
之后,应初始化分页:
$this->pagination->initialize($config);
添加了$config['reuse\u query\u string']
以允许自动重新填充
一组查询字符串参数,与普通URI段组合。-
很棒&很简单,但不是最好的解决方案,因为如果你不离开元素,链接不会改变。这个解决方案救了我的命。它工作得很好,我在文档中没有看到任何关于“后缀”配置的内容。谢谢很遗憾CI没有在他们的文档上写下$config['suffix']
。@你救了我的命。。回答得好!这是一个真正的解决方案,必须标记为答案。。好答案+1人这太棒了,+1这是完美的答案。试试这个。所有其他的答案都被认为是正确的也是浪费时间。这个答案应该被投票并提升到最高层。投票最多的答案在过去可能会有所帮助,但现在它在某些阶段会中断。这对我来说最有效,我接受了另一个开发人员项目,该项目使用post而不是GET进行搜索,这是一个非常混乱的问题,但我发现,一旦我将所有内容从post切换到GET,这一点很有用。在我的案例中,它显示您提交的URI不允许使用字符。
。URL生成类似于search/10&email=&mobile=11
。现在我该怎么办