Разбиение кодового указателя на выбранный номер строки (динамический) из выпадающего меню - PullRequest
0 голосов
/ 03 октября 2018

У меня проблема с нумерацией страниц при использовании CI.Во-первых, я бы хотел, чтобы на моей странице отображалось 5 активных записей с выпадающей кнопкой, чтобы выбрать количество отображаемых строк (5,10,15, ...) с разбивкой на страницы (индекс).Моя проблема заключается в том, что всякий раз, когда я выбираю (например) 5 строк, он сначала показывает нумерацию страниц.Но когда я нажимаю на страницу 2 (или на следующую), нумерация страниц будет отсутствовать, и мне придется выбрать номер строки (5) и снова нажать кнопку «ОК».Может ли кто-нибудь помочь мне с этим?

Мой код:

КОНТРОЛЛЕР

public function viewBranch($offset = 0)
{

    $this->load->helper('url');
    $this->load->database();
    $this->load->library('pagination');
    $this->load->helper('form');
    $this->load->model('insertBranch_model');

    $limit_per_page = $this->input->post('getRows');
    echo $limit_per_page;
    $num_rows=$this->db->count_all("branch");

    $config['base_url'] = base_url().'index.php/main_controller/viewBranch/';
    $config['total_rows'] = $num_rows;
    $config['per_page'] = $limit_per_page;
    $config['uri_segment'] = 3;
    //styling
    $config['num_tag_open'] = '<li>';
    $config['num_tag_close'] = '</li>';
    $config['cur_tag_open'] = '<li class="active"><a href="javascript:void(0);">';
    $config['cur_tag_close'] = '</a></li>';
    $config['next_link'] = 'Next';
    $config['prev_link'] = 'Prev';
    $config['next_tag_open'] = '<li class="pg-next">';
    $config['next_tag_close'] = '</li>';
    $config['prev_tag_open'] = '<li class="pg-prev">';
    $config['prev_tag_close'] = '</li>';
    $config['first_tag_open'] = '<li>';
    $config['first_tag_close'] = '</li>';
    $config['last_tag_open'] = '<li>';
    $config['last_tag_close'] = '</li>';

    $this->pagination->initialize($config);
    $data['details']=$this->insertBranch_model->viewDetails($offset,$config,$limit_per_page);
    $this->load->view('branchDetails',$data);

}

МОДЕЛЬ:

public function viewDetails($offset,$config,$limit_per_page){

    $callRow = $this->db->select('*')
                    ->from('branch')
                    ->limit($limit_per_page)
                    ->offset($offset)
                    ->order_by('branchCode', 'asc')
                    ->get();

    return $callRow->result();

}

VIEW:

Number of rows:

<select name="getRows" id="getRows">
  <option value="">Select</option>
  <option selected="selected" value="5">5</option>
  <option value="10">10</option>
  <option value="20">20</option>
</select>

1 Ответ

0 голосов
/ 03 октября 2018

Я думаю, вы должны использовать это.

public function viewBranch($offset ="0")
{
    $this->load->helper('url','form');
    $this->load->library('pagination');
    $this->load->model('insertBranch_model');

    if(!empty($this->input->post('getRows')){
     $limit_per_page = $this->input->post('getRows');
    }else{
     $limit_per_page = 5;
    }
    $num_rows = $this->insertBranch_model->getallcount();

    $config['base_url'] = base_url().'index.php/main_controller/viewBranch';
    $config['total_rows'] = $num_rows;
    $config['per_page'] = $limit_per_page;
    $config['uri_segment'] = 3;
    //styling
    $config['num_tag_open'] = '<li>';
    $config['num_tag_close'] = '</li>';
    $config['cur_tag_open'] = '<li class="active"><a href="javascript:void(0);">';
    $config['cur_tag_close'] = '</a></li>';
    $config['next_link'] = 'Next';
    $config['prev_link'] = 'Prev';
    $config['next_tag_open'] = '<li class="pg-next">';
    $config['next_tag_close'] = '</li>';
    $config['prev_tag_open'] = '<li class="pg-prev">';
    $config['prev_tag_close'] = '</li>';
    $config['first_tag_open'] = '<li>';
    $config['first_tag_close'] = '</li>';
    $config['last_tag_open'] = '<li>';
    $config['last_tag_close'] = '</li>';

    $this->pagination->initialize($config);
    $data['details']=$this->insertBranch_model->viewDetails($offset,$config,$limit_per_page);
    $this->load->view('branchDetails',$data);

}

Модель:

public function viewDetails($offset,$config,$limit_per_page){
    $callRow = $this->db->select('*')
                    ->from('branch')
                    ->limit($limit_per_page)
                    ->offset($offset)
                    ->order_by('branchCode', 'asc')
                    ->get();

    return $callRow->result();
}

public function getallcount(){
  return $this->db->count_all_results('branch');
 }

Вид:

<select name="getRows" id="getRows">
  <option value="">Select</option>
  <option selected="selected" value="5">5</option>
  <option value="10">10</option>
  <option value="20">20</option>
</select>
...