【问题标题】:Pagination 'previous' link is no working in codeigniter分页“上一个”链接在 codeigniter 中不起作用
【发布时间】:2017-08-01 15:08:47
【问题描述】:

这是我的分页代码。当我点击“下一步”按钮时,它会显示带有剩余产品图片的下一页,但如果我点击“上一个”,它会显示空白页面。我申请另一个页面分页的相同代码它的工作原理很好,但它不适用于此页面。

控制器

     public function onSectorClick1() {

            $id = $_GET["id"];

            $this->session->set_userdata('subcategory2_id', $_GET['id']);
            $this->session->set_userdata('subcategory2_name', $_GET['name']);
            $this->onSectorClick1Copy();
        }

        public function onSectorClick1Copy() {



            $data['ListMenuLevel1'] = $this->Categories_model->listsector1();

            $config = array();
            $config["base_url"] = base_url() ."index.php/welcome/onSectorClick1Copy";
            $total_row = $this->productdisplay_model->subproductlist_count($this->session->userdata('subcategory2_id'));
            $config['total_rows'] = $total_row;
            $config['per_page'] = 20;
            $config['uri_segment'] = 3;
            $config['use_page_numbers'] = TRUE;
            $config['num_links'] = 1;
            $config['cur_tag_open'] = '&nbsp;<a class="current">';
            $config['cur_tag_close'] = '</a>';
            $config['next_link'] = 'Next';
            $config['prev_link'] = 'Previous';
            $this->load->library('pagination');
            $this->pagination->initialize($config);

            $page = ($this->uri->segment(3) != '' ? $this->uri->segment(3) : 1);

            $offset = (($config['per_page']) * ($page - 1));
            $limit = $config['per_page'] * $page ;
            $data['sub2products'] = $this->productdisplay_model->sub2Productsmenu($this->session->userdata('subcategory2_id'),$limit, $offset);
            $str_links = $this->pagination->create_links();
            $data["links"] = explode('&nbsp;', $str_links);
            $this->load->view('subproductlist', $data);
        }

型号

     public function subproductlist_count($id) {
            $this->db->select('*');
            $this->db->from('sub2_category');
            $this->db->where('sub1_categoryid_fk', $id);
            $this->db->order_by("sub2_category.sub1_categoryid_fk ");
            $query = $this->db->get();
            return  $query->num_rows();

        }



        public function sub2Productsmenu($id,$limit, $offset){

            $this->db->select('*');
            $this->db->from('sub2_category');
            $this->db->where('sub1_categoryid_fk', $id);
            $this->db->order_by("sub2_category.sub1_categoryid_fk ");
            $this->db->limit($limit, $offset);
            return $this->db->get()->result();


        }

查看

     <div class="center">
                <ul class="pagination">
                     <?php
                    foreach ($links as $link) {
                        echo "<li>" . $link . "</li>";
                    }
                    ?>
                </ul>
            </div>

【问题讨论】:

  • 检查previous链接上的网址。
  • 你在使用框架吗? $this-&gt;pagination-&gt;create_links() 没有提供足够的信息来说明生成的内容。你的pagination 列表中呈现了什么?
  • 我正在使用的codeigniter框架。

标签: php html mysql codeigniter


【解决方案1】:

这就是我创建分页的方式,而且效果很好。下面是Controller中的代码。

    $config['base_url'] = base_url().'property/properties';
    $config['total_rows'] = $this->property_model->countProperties();
    $config['per_page'] = 6;
    //===========================//
    // Defining Pagination Styles//
    //===========================//
    $config['full_tag_open'] = '<ul class="pagination">';
    $config['full_tag_close'] = '</ul>';
    $config['prev_link'] = '<span aria-hidden="true">&laquo;</span>';
    $config['prev_tag_open'] = '<li>';
    $config['prev_tag_close'] = '</li>';
    $config['next_link'] = '<span aria-hidden="true">&raquo;</span>';
    $config['next_tag_open'] = '<li>';
    $config['next_tag_close'] = '</li>';
    $config['cur_tag_open'] = '<li class="active"><a href="#">';
    $config['cur_tag_close'] = '</a></li>';
    $config['num_tag_open'] = '<li>';
    $config['num_tag_close'] = '</li>';
    $config['first_tag_open'] = '<li>';
    $config['first_tag_close'] = '</li>';
    $config['last_tag_open'] = '<li>';
    $config['last_tag_close'] = '</li>';
    $config['first_link'] = '&lt;&lt;';
    $config['last_link'] = '&gt;&gt;';
    $this->pagination->initialize($config);
    $data['properties']=$this->property_model->getAllProperties($config['per_page'],$offset);
    $data['pagination']=$this->pagination->create_links();

在我看来

<!-- Start properties content bottom -->
<?php if(isset($pagination)){?>
 <div class="aa-properties-content-bottom">
  <nav>
    <?php echo $pagination?>
  </nav>
 </div>
<?php }?>

【讨论】:

  • 没有错误,但代码与我的代码相同。但我收到错误,例如当我单击上一个链接时页面显示为空。
  • 点击上一条记录时会创建什么url?
  • 首先通过 htaccess 删除 index.php。其次,您是否将此网址粘贴到浏览器中并检查记录是否出现
  • 是的,我粘贴了那个网址,但检查的记录没有显示。
  • 我通过 htaccess 删除了 index.php 并尝试过,但它不起作用。
【解决方案2】:

试试这个

public function onSectorClick1($offset=0) {

        $id = $_GET["id"];

        $this->session->set_userdata('subcategory2_id', $_GET['id']);
        $this->session->set_userdata('subcategory2_name', $_GET['name']);

        $data['ListMenuLevel1'] = $this->Categories_model->listsector1();

        $config = array();
        $config["base_url"] = base_url() ."index.php/welcome/onSectorClick1";
        $total_row = $this->productdisplay_model->subproductlist_count($id);
        $config['total_rows'] = $total_row;
        $config['per_page'] = 20;
        $config['uri_segment'] = 3;
        $config['use_page_numbers'] = TRUE;
        $config['num_links'] = 1;
        $config['cur_tag_open'] = '&nbsp;<a class="current">';
        $config['cur_tag_close'] = '</a>';
        $config['next_link'] = 'Next';
        $config['prev_link'] = 'Previous';
        $this->load->library('pagination');
        $this->pagination->initialize($config);
        $data['sub2products'] = $this->productdisplay_model->sub2Productsmenu($id,$limit, $offset);
        $str_links = $this->pagination->create_links();
        $data["links"] = explode('&nbsp;', $str_links);
        $this->load->view('subproductlist', $data);
    }

这个代码有一个工作模型here

【讨论】:

    【解决方案3】:
    In my controller code I just changed the session name as sub2_id and I passed the get variable "$id" to the session.The following change in code is displayed below.
    

    控制器

     public function onSectorClick1() {
    
            $id = $_GET["id"];
    
            $this->session->set_userdata('sub2_id',  $id);
    
            $this->onSectorClick1Copy();
        }
    

    【讨论】:

      猜你喜欢
      • 2012-04-02
      • 1970-01-01
      • 2014-02-03
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      相关资源
      最近更新 更多