Как добавить нумерацию страниц в кодигнитер - PullRequest
0 голосов
/ 06 мая 2018

Ниже показано, как выглядит контроллер ci. Я просто следую учебнику на канале Youtube. Как добавить нумерацию страниц, чтобы страница загружала только 20 результатов на страницу?

<?php
class Product_details extends CI_Controller{

    function index(){
        $this->load->library('pagination');
        $this->load->model('product_model');
        $data['userArray'] = $this->product_model->return_products();
        $this->load->view('product_listing',$data);

    }
}

View

<table>
    <tr>
        <th>ID</th>
        <th>Product Name</th>
        <th>Product Price</th>
        <th>Product Image</th>
    </tr>
    <?php
        foreach ($userArray as $key => $value) {


            echo "<tr>
            <td>".$value['id']."</td>
            <td>".$value['post_id']."</td>
            <td>".$value['price']."</td>
            <td><img src=".$value['imageUrl']."/></td>
            </tr>";
             }
        ?>
</table>

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

См. Пример, как добавить нумерацию страниц.

Давайте Мой контроллер - Dashboard.php, а его метод - index. Теперь настройте нумерацию страниц.

public function index()
{
    $config['base_url'] = site_url('/dashboard/index/');
    $config['total_rows'] = $this->dashboard_model->num_rows();
    $config['per_page'] = 5;
    $config['use_page_numbers'] = FALSE; 
    $this->pagination->initialize($config);

    $data['data'] = $this->dashboard_model->all_blog($config['per_page'], $this->uri->segment(3));
    $this->load->view("/dashboard/blog", $data);
}

Модель - Dashboard_model.php

public function all_blog($limit, $offset)
    {
      $this->db->from('blogs');
      $this->db->select('*');
      $this->db->order_by("created_at", "desc");
      $q = $this->db->get();
      $data = $q->result_array();
      return $data; 
    }

    public function num_rows()
    {
      $this->db->from('blogs');
      $this->db->select('*');
      $this->db->order_by("created_at", "desc");
      $this->db->limit($limit, $offset);
      $q = $this->db->get();
      $data = $q->num_rows();
      return $data; 
    }

Теперь это мой взгляд blog.php

  <div class="table-responsive">
   <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="8" data-filter=#filter; id="filter">
   <thead>
      <tr>
        <th></th>
        <th>S.No</th>
        <th>Title </th>
        <th>Blog Image</th>
        <th>Added For</th>
      </tr>
   </thead>
   <tbody>                             
      <?php 
      $count = $this->uri->segment(3, 0);
      foreach ($data as $key) : 
      ?>
      <tr>
        <td><input type="checkbox" class="i-checks" name="input[]"></td>
        <td><?php echo ++$count; ?></td>
        <td><?php echo $key['blog_title']; ?></td>
        <td><img src="<?php echo $key['blog_image']; ?>" style="width: 150px; height: 80px" /></td>
        <td><?php echo $key['user_type']; ?></td>
       </tr>
    <?php endforeach?>
    </tbody>                   
 </table>
 </div>
 <?php 
  echo $this->pagination->create_links();
 ?>
0 голосов
/ 07 мая 2018

Вы можете передать номер страницы в модели.

Контроллер

 <?php
    class Product_details extends CI_Controller{

    function index($pageNo){

        $this->load->model('product_model');
        $data['userArray'] = $this->product_model->return_products($pageNo);
        $this->load->view('product_listing',$data);

    }
}

Модель

public function all($pageNo){

    $pageNo -= 1;
    $this->db->select("*")
             ->from('products')
             ->order_by('id',"ASC")
             ->limit(20, $pageNo * 20);
    $query = $this->db->get();
    return $query->result_array();
...