为什么分页链接在CodeIgniter中对我不起作用? [英] Why are pagination links not working for me in CodeIgniter?

查看:74
本文介绍了为什么分页链接在CodeIgniter中对我不起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试对我的产品使用codeigniter分页,因此有多个页面显示了哪些产品,但不适用于我,我也不知道为什么.

I'm trying to use codeigniter pagination for my products so there are multiple pages which products but its not working for me and I don't know why..

这是我在控制器中的分页功能:

This is my pagination function in my controller:

//code om in allecadeaus te bepalen hoeveel producten er per pagina zitten
   public function pagination() {
        //load pagination library
        $this->load->library('pagination');
        //laad Products_model voor pagination
        $this->load->model('Pagination_model');
        $this->load->model('Product_model');

        $config = array();
        $config["base_url"] = base_url() . "AlleCadeausController/pagination";
        $config["total_rows"] = $this->products->record_count();
        $config["per_page"] = 24;
        $config['cur_tag_open'] = '<a><b class="text-success">';
        $config['cur_tag_close'] = '</b></a>';
        $config["uri_segment"] = 3;
        $config['use_page_numbers'] =True;
        $config['enable_query_strings'];

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

        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
        $data['title'] = "Products";
        $data['products'] = $this->Product_model->selectProducts();
        $data["links"] = $this->pagination->create_links();

        $this->load->view("allecadeaus", $data);
    }

在这一行中,我将从产品表中获取所有产品:

with this line I'm getting all the products from product table:

$data['products'] = $this->Product_model->selectProducts();

我的分页模型:

<?php
class Pagination_model extends CI_Model
{

    public function __construct() {
        parent::__construct();
    }

    public function record_count() {
        return $this->db->count_all("products");
    }

     public function fetch_products($limit, $start) {
        $this->db->limit($limit, $start);
        $query = $this->db->get_where('users',array('Is_Hidden'=>0));

        if ($query->num_rows() > 0) {
            foreach ($query->result() as $row) {
                $data[] = $row;
            }
            return $data;
        }
        return false;
    }

?>

我现在在所有产品"页面上尝试回显链接,但是它不起作用.我没有看到正确的链接,而只有1个链接导致了其他问题.这是我在所有产品页面上看到的代码:

On my all products page I now tried to echo links but it doesn't work. I don't see the correct links and its just 1 link that leads to something else. This is the code in my view on the all products page:

<div class="text-center"><nav aria-label="Page navigation">
                                            <ul class="pagination">

                                                <li><?php echo $links; ?></li>

                                            </ul>
                                        </nav></div>

我在做什么错了?

推荐答案

请进行如下更改:

控制器:

public function pagination($row = 0) {
     //load pagination library
        $this->load->library('pagination');
        //laad Products_model voor pagination
        $this->load->model('Pagination_model');
        $this->load->model('Product_model');
        $config = array();
        $limit = '24';      
        $config['base_url'] = site_url() . '/AlleCadeausController/pagination';
        $config['full_tag_open'] = "<ul class='pagination'>";
        $config['full_tag_close'] = '</ul>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';
        $config['cur_tag_open'] = '<li class="active"><a href="#">';
        $config['cur_tag_close'] = '</a></li>';
        $config['prev_tag_open'] = '<li>';
        $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>';
        $config['prev_link'] = '<i class="fa fa-long-arrow-left"></i>Previous Page';
        $config['prev_tag_open'] = '<li>';
        $config['prev_tag_close'] = '</li>';
        $config['next_link'] = 'Next Page<i class="fa fa-long-arrow-right"></i>';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';     
        $config["total_rows"] = $this->Product_model->record_count();            
        $config['per_page'] = $limit;
        $this->pagination->initialize($config);  
        $data['links'] = $this->pagination->create_links();
        $data['products'] = $this->Product_model->selectProducts($row,$limit);
        $this->load->view("allecadeaus", $data);
    }

型号:

function selectProducts($row,$limit)
        {   
            $query = $this->db->get('Your_table_name',$limit,$row);

            if ($query->num_rows() > 0){
              return $query->result_array();
            }
             else {
              return array();
            }

        }

function record_count(){        
        $this->db->from('Your_table_name');         
        $query = $this->db->get();
        $row = $query->num_rows();
        return $row;
    }

这将帮助您..谢谢!

这篇关于为什么分页链接在CodeIgniter中对我不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆