Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有get参数的codeigniter分页url_Php_Codeigniter - Fatal编程技术网

Php 带有get参数的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不能像那样工作。

在URL中传递参数时,在codeigniter上设置分页时遇到问题

如果我的url是这样的:
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();

  • 使用regexp查找所有链接并添加查询字符串

  • 使用的正则表达式代码是:

    <?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).'&amp;'.$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 . '&amp;';
    $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
    。现在我该怎么办