неправильная текущая страница на нумерации страниц для контента ajax - PullRequest
0 голосов
/ 01 марта 2019

Контент на одной из моих страниц загружается через Ajax.Содержимое и разбиение на страницы все обрабатываются и загружаются в контейнерный блок довольно хорошо, за исключением проблемы неправильного размещения CURRENT PAGE на нумерации страниц.

1-я страница всегда задается как текущая страница, и я не могу понять, почему

Пример URL для, например, 2-й страницы:

http://localhost/mysite/index.php/category/item/2

Метод нумерации страниц, вызываемый Ajax:

Методу передается два параметра POST cat_id для контента, извлекаемого из БД и текущей страницыномер

public function category_product_pagination(){  

    if(!empty($this->input->post('cat_id')) && !empty($this->input->post('page'))){

        $cat_id_enc     =   $this->input->post('cat_id');
        $cat_id         =   $this->decryptGetId($cat_id_enc);

        $page       =   $this->input->post('page');

        $slug   = $this->ajax_model->dbSingleColQuery('slug', 'product_category', "id = '".$cat_id."'");                

        /////////////// PAGINATION //////////////
        $config = array();
        $config["base_url"] = base_url() . "/category/".$slug;      
        $total_row = $this->ajax_model->dbRowCountQuery('product', "cat_id = '".$cat_id."' AND del_status = 0");
        $config["total_rows"] = $total_row;
        $config["per_page"] = $this->per_page;
        $config['use_page_numbers'] = TRUE;
        $config['num_links'] = 2;
        $config['next_link'] = 'Next';
        $config['prev_link'] = 'Previous';
        $config['uri_segment'] = 3;

        $config['first_tag_open']       = '<li>';
        $config['first_tag_close']      = '</li>';
        $config['last_tag_open']        = '<li>';
        $config['last_tag_close']       = '</li>';
        $config['prev_tag_open']        = '<li>';
        $config['prev_tag_close']       = '</li>';
        $config['next_tag_open']        = '<li>';
        $config['next_tag_close']       = '</li>';
        $config['cur_tag_open']         = '<li><a class="current">';
        $config['cur_tag_close']        = '</a></li>';

        $config['num_tag_open']         = '<li>';
        $config['num_tag_close']        = '</li>'; 

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

        $limit_row = ($page == 1) ? 0: ($page - 1) * $config["per_page"];
        $product_list   = $this->ajax_model->dbMultiRowQuery('*', 'product', "cat_id = '".$cat_id."' AND del_status = 0", 'id', 'DESC', $limit_row, $config["per_page"]);

        $str_links = $this->pagination->create_links();
        $pagination = explode('&nbsp;',$str_links);

        /////////////// PAGINATION //////////////

        echo '<ul class="tsc_pagination">'; 
        foreach ($pagination as $key => $link) {
            echo $link;
        }
        echo '</ul>';

    }

}// End function

Ajax / Jquery

(function($){       

    var cat_id          = $("#filter_form_id input[name=cat_id]").val();

    var form_data = {
        cat_id : cat_id,
        page : page,
        secure_csrf_token_name : csrf
    }

    $("#this_category_product_container").html('<img src="'+base_url+'assets/img/ajax-loader.gif" />');

    $.ajax({
        url :   site_url+"/category-product-loader",
        type :  "POST",
        data :  form_data,
        dataType: "html",
        cache :     false
    })
    .done(function(resp){           
        if(resp == 5){                      
            $("#this_category_product_container").html(respMsg('No product match found!', 2));      
        }
        else{
            $("#this_category_product_container").html(resp);   // Product Loading into container tag

            // Generate Pagination
            $.ajax({
                    url:        site_url+'/category-product-pagination',
                    type :      "POST",
                    cache:      false,
                    dataType:   "html",
                    data :  form_data,
                    success:    function(paginate){
                        //alert(page);
                                    $("#pagination").html(paginate);    
                    }
                }); 
            // Generate Pagination
        }   
    })
    .fail(function(){
        $("#this_category_product_container").html('Query to sever unsuccessful. Try again shortly!');
    });

})(jQuery);

Был бы рад получить помощь ...

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Наконец-то разобрался с проблемой.Просто добавьте

$config['cur_page'] = $page;

в конфигурацию пагинации, и это передало значение текущей страницы в класс пагинации

0 голосов
/ 01 марта 2019

Я думаю, что проблема может быть в том, что вы не объявили переменную страницы в ajax.

(function($){       

    var cat_id          = $("#filter_form_id input[name=cat_id]").val();
    // where is var page??
    var form_data = {
        cat_id : cat_id,
        page : page,
        secure_csrf_token_name : csrf
    }
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...