将分页与查询字符串一起用于搜索表单,该表单的方法设置为进入 codeigniter

Posted

技术标签:

【中文标题】将分页与查询字符串一起用于搜索表单,该表单的方法设置为进入 codeigniter【英文标题】:Using pagination with query string for a search form which has the method set to get in codeigniter 【发布时间】:2011-08-30 02:54:42 【问题描述】:

我正在敲打键盘,试图找出一种方法来使用带有分页的查询字符串,在出现FIRST 页面链接之前,一切正常。

所有其他链接的末尾都附加了查询字符串,但 First 页面链接 misses the query string

其他页面的链接:

http://localhost/index.php/search/index/9?q=some_Data_From_Form

第一页链接显示我在$config['base_url'] 中设置的链接 变量:

http://localhost/index.php/search/index/

搜索表单:

$attributes=array('id'=>'search','class'=>'clearfix','method'=>'get');
echo form_open(base_url().'index.php/search/index',$attributes);

它有一个名称设置为q的文本框。

我偶然发现了一些关于 *** 的答案/示例,这就是我写的:

分页配置文件有

$config['per_page'] = '1';
$config['uri_segment'] = '3';

还有像num_tag_open 等的其他人。

控制器类:

class Search extends CI_Controller 
    public function Search()
        parent::__construct();
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('input');
        $this->load->model('blog_model');
        $this->load->library('pagination');
        $this->config->load('pagination'); //other pagination related config variables
    

    public function index($page=0)
        $q = trim($this->input->get('q'));
        if(strlen($q)>0)
            //validate input and show data
            $config['enable_query_strings']=TRUE;
            $getData = array('q'=>$q);
            $config['base_url'] = 'http://localhost/index.php/search/index/';   
            $config['suffix'] = '?'.http_build_query($getData,'',"&");

            $data['rows'] = $this->blog_model->getBySearch($q,$this->config->item('per_page'),$page);
            if(empty($data['rows']))
                //no results found              

            else
                //match found
                $config['total_rows'] = $this->blog_model->getBySearchCount($q);
                $this->pagination->initialize($config); 
                $link->linkBar = $this->pagination->create_links();
                $this->load->view('myview',array($data,$link));
            
        else if(strlen($q)==0)
            //warn user for the missing query and show a searchbox

        
    

求救!小伙伴们帮帮我吧

【问题讨论】:

+1 为您的头部和键盘:D 【参考方案1】:

我不敢相信,我花了几个小时在网上搜索解决方案! 它一直和我在一起。我应该在发布这个问题之前打开分页库并查看其内容。只需一行,问题就解决了。 我在 index 方法中添加了以下行。$config['first_url'] = '/index.php/search/index/?q='.$q;

【讨论】:

感谢您的帖子非常有用。

以上是关于将分页与查询字符串一起用于搜索表单,该表单的方法设置为进入 codeigniter的主要内容,如果未能解决你的问题,请参考以下文章

django-filter使用分页

ES深度分页与批量操作

django-filter 使用分页

ajax分页查询信息的通用方法

第一阶段站立会议06

mysql进阶之细谈索引分页与慢日志