codeigniter pagination url with get parameters

后端 未结 15 1804
野的像风
野的像风 2020-12-12 14:52

I am having trouble setting up pagination on codeigniter when I pass parameters in the URL

if my url is like this : search/?type=groups

what sho

相关标签:
15条回答
  • 2020-12-12 14:52

    The solution is that CodeIgniter does not function like that. what I need is a method ( in the controller ) for each one of the options in "type" so one option would be a method called :groups , another called entries etc etc each method refers to a different model class or method as needed.

    I am trying to better understand OOP and CI ...a bit of adjusting to do ... feel free to comment and correct me if i am wrong. thank you

    0 讨论(0)
  • 2020-12-12 14:55

    if you are using codeigniter 2 there's an option in config.php, $config['allow_get_array'] - make sure its on TRUE.

    Then set the pagination option $config['page_query_string'] to TRUE.

    And finally, in your case set $config['base_url'] to "search/?type=groups", the pagination will append the per_page query string after it.

    It should work this way, you'll get the offset in $this->input->get("per_page").

    code strong!

    0 讨论(0)
  • 2020-12-12 14:56

    The most up-to-date answer of this question is;

    You should enable the reusage of the query string by enabling this configuration:

    $config['reuse_query_string'] = true;
    

    after that you should initialize the pagination:

    $this->pagination->initialize($config);
    

    Added $config['reuse_query_string'] to allow automatic repopulation of query string arguments, combined with normal URI segments. - CodeIgniter 3.0.0 Change Log

    0 讨论(0)
  • 2020-12-12 14:57

    Here is my jquery solution:

    Just wrap pagination links in a div like this:

    $config['full_tag_open'] = '<div id="pagination">';
    $config['full_tag_close'] = '</div>';
    

    than add the following jquery code:

    $("#pagination > a").each(function() {
        var g = window.location.href.slice(window.location.href.indexOf('?'));
        var href = $(this).attr('href');
        $(this).attr('href', href+g);
    });
    

    Works fine for me.

    0 讨论(0)
  • 2020-12-12 14:57

    Using the $config['suffix'] is the IMO best way to implement this because it doesn't require any extra processing as the regex solution. $config['suffix'] is used in the rendering of the urls in the create_links function that's part of the system/libraries/Pagination.php file so if you set the value it'll be used in the generation of the urls and won't require anymore processing which means it'll be faster.

    Thanks for the post, this saved me tons of extra, not needed, coding!

    0 讨论(0)
  • 2020-12-12 15:01

    I think you are trying to do the same thing I was trying to do and I got it to work correctly by not setting a base url and just using this setup it kept me from having to manually editting the library

    $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); 
    
    0 讨论(0)
提交回复
热议问题