如何禁用分页如果数据少于6或等??(CodeIgniter)


How to disable pagination if data less than 6 or etc ?? (CodeIgniter)

如果数据小于6,我想禁用分页。这是我在控制器上的脚本:

 function index(){
    $per_page= $this->input->get('per_page');
    $data['brand'] = $this->brand_model->brand();
    $data['type'] = $this->type_model->type();
    $data['city'] = $this->city_model->city();
    $data['location'] = $this->location_model->location();
    $data['history']= $this->history_transaksi_model->history($to,$per_page);
    $pagination['page_query_string'] = TRUE;
    $pagination['base_url'] = site_url().'history/?';
    $pagination['total_rows'] = 10;
    $pagination['per_page'] = 5;
    $pagination['uri_segment'] = 6;
    $pagination['num_links'] = 3;

    $pagination['full_tag_open'] = '<ul class="pagination">';
    $pagination['full_tag_close'] = '</ul>';
    $pagination['first_link'] = '<<';
    $pagination['first_tag_open'] = '<li class="prev page">';
    $pagination['first_tag_close'] = '</li>';
    $pagination['last_link'] = '>>';
    $pagination['last_tag_open'] = '<li class="next page">';
    $pagination['last_tag_close'] = '</li>';
    $pagination['next_link'] = '>';
    $pagination['next_tag_open'] = '<li class="next page">';
    $pagination['next_tag_close'] = '</li>';
    $pagination['prev_link'] = '<';
    $pagination['prev_tag_open'] = '<li class="prev page">';
    $pagination['prev_tag_close'] = '</li>';
    $pagination['cur_tag_open'] = '<li class="active"><a href="">';
    $pagination['cur_tag_close'] = '</a></li>';
    $pagination['num_tag_open'] = '<li class="page">';
    $pagination['num_tag_close'] = '</li>';

    $this->pagination->initialize($pagination);
    $this->load->view('history.php',$data);
}

在我看来,我使用If语句,但是当数据大于5时,分页不显示,并且第六个或更多的数据也不出现。

<?php 
if(count($history->result())==0 || count($history->result()) <=5  ){
}else{
echo $this->pagination->create_links();
}
?>

你在找什么&你这样做是不对的

你正在做

$data['history']= $this->history_transaksi_model->history($to,$per_page);//Here actually you are getting data for the page e.g page 3 data

这里你应该计算总行数例如你有100行数据用于这个分页

$pagination['total_rows'] = 10;

这应该是一个从模型到表的方法调用直接调用db表获取记录总数分页

$pagination['total_rows'] = $this->history_transaksi_model->get_total_rows();//if you have any search params pass it to the method

我的建议是,虽然你有少于6条记录,你正在创建分页。

$data['pagination']= '';//init pagination value
if (($pagination['total_rows'] = $this->history_transaksi_model->get_total_rows()) > 5) {
    $pagination['page_query_string'] = TRUE;
    $pagination['base_url'] = site_url().'history/?';
    $pagination['total_rows'] = 10;
    $pagination['per_page'] = 5;
    $pagination['uri_segment'] = 6;
    $pagination['num_links'] = 3;

    $pagination['full_tag_open'] = '<ul class="pagination">';
    $pagination['full_tag_close'] = '</ul>';
    $pagination['first_link'] = '<<';
    $pagination['first_tag_open'] = '<li class="prev page">';
    $pagination['first_tag_close'] = '</li>';
    $pagination['last_link'] = '>>';
    $pagination['last_tag_open'] = '<li class="next page">';
    $pagination['last_tag_close'] = '</li>';
    $pagination['next_link'] = '>';
    $pagination['next_tag_open'] = '<li class="next page">';
    $pagination['next_tag_close'] = '</li>';
    $pagination['prev_link'] = '<';
    $pagination['prev_tag_open'] = '<li class="prev page">';
    $pagination['prev_tag_close'] = '</li>';
    $pagination['cur_tag_open'] = '<li class="active"><a href="">';
    $pagination['cur_tag_close'] = '</a></li>';
    $pagination['num_tag_open'] = '<li class="page">';
    $pagination['num_tag_close'] = '</li>';

    $this->pagination->initialize($pagination);
    $data['pagination'] = $this->pagination->create_links();
}

如果您使用自定义 HTML 包装分页

if ( ! empty($pagination) ) {
    echo '<div class="pagination">' . $pagination . '</div>';
}

else just echo it

echo $pagination;