Codeigniter分页:错误自动增量编号

时间:2017-04-05 04:55:22

标签: php codeigniter pagination

我有错误分页,只是阅读了这个问题:

Incrementing Operator in Foreach Loop for Pagination

当我的分页有效时,它正在工作。当我的分页无效时,我的网络上有自动增量号码的错误。这是图片:

Page when my pagination is inactive

Page when my pagination is active

这是我的模特:

public function countGate()
  {
      return $this->db->count_all_results("tbl_gate");
  }

  public function paginationGate($limit, $start)
  {
      $this->db->select('*');
      $this->db->from('tbl_gate');
      $this->db->limit($limit, $start);
      return $this->db->get();
  }

这是我的控制器:

public function gate()
  {
      $this->load->view('template/header');
      $this->load->view('admin/admin-header');

      $config = array();
      $config["base_url"] = base_url() . "index.php/admin/gate";
      $config["total_rows"] = $this->pagination_m->countGate();
      $config["per_page"] = 8;
      $config["uri_segment"] = 3;

      $this->pagination->initialize($config);
      $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
      $data['allgate'] = $this->pagination_m->paginationGate($config["per_page"], $page);
      $data['links'] = $this->pagination->create_links();

      $this->load->view('admin/admin-gate', $data);
      $this->load->view('template/footer');
  }

这是我的观点(自动增量减去bug的表):

<table class="table table-bordered">
        <tr>
          <th>#</th>
          <th>Fullname</th>
          <th>Gate</th>
          <th>Password</th>
          <th>Access</th>
          <th>Active</th>
          <th colspan="2">Action</th>
        </tr>
        <?php
          $i = 1 + ($this->pagination->cur_page-1)*$this->pagination->per_page;
          foreach ($allgate->result() as $gate){
        ?>
        <tr>
          <td><?= $i++ ?></td>
          <td><?= $gate->Fullname ?></td>
          <td><?= $gate->Username ?></td>
          <td><?= $gate->Password ?></td>
          <td><?= $gate->Level ?></td>
          <td><?= $gate->Active ?></td>
          <td><a href="<?= site_url('AdminUpdate/updateGate/'.$gate->IdGate)?>" data-toggle="modal" data-target="#update-gate">Edit</a></td>
          <td><a href="<?= site_url('admindelete/deletegate/'.$gate->IdGate)?>">Delete</a></td>
        </tr>
        <?php } ?>
      </table>

1 个答案:

答案 0 :(得分:1)

它会起作用。我使用相同的分页。 更新控制器:

public function gate()
{
    $this->load->view('template/header');
    $this->load->view('admin/admin-header');

    $config = array();

    $config["uri_segment"] = 3;
    $config["base_url"] = base_url("index.php/admin/gate");
    $config["per_page"] = 8;

    //add this also
    $config['use_page_numbers'] = TRUE;
    $config['first_url'] = '1';

    $config["total_rows"] = $this->pagination_m->countGate();

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

    $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
    $offset = ($page == 0 ? 0 : ($page - 1) * $config["per_page"]);

    $data['allgate'] = $this->pagination_m->paginationGate($config["per_page"], $offset)->result();
    $data['links'] = $this->pagination->create_links();

    $data['start'] = ($page == 0 ? 1 : (($page - 1) * $config["per_page"] + 1));

    $this->load->view('admin/admin-gate', $data);
    $this->load->view('template/footer');
}

更新了视图:

<table class="table table-bordered">
    <tr>
        <th>#</th>
        <th>Fullname</th>
        <th>Gate</th>
        <th>Password</th>
        <th>Access</th>
        <th>Active</th>
        <th colspan="2">Action</th>
    </tr>
        <?php foreach ($allgate as $gate){ ?>
        <tr>
            <td><?= $start; ?></td>
            <td><?= $gate->Fullname ?></td>
            <td><?= $gate->Username ?></td>
            <td><?= $gate->Password ?></td>
            <td><?= $gate->Level ?></td>
            <td><?= $gate->Active ?></td>
            <td><a href="<?= site_url('AdminUpdate/updateGate/'.$gate->IdGate)?>" data-toggle="modal" data-target="#update-gate">Edit</a></td>
            <td><a href="<?= site_url('admindelete/deletegate/'.$gate->IdGate)?>">Delete</a></td>
        </tr>
        <?php 
            $start++;
        } ?>
</table>
<ul class="pagination">
    <?php echo $data['links']; ?>
</ul>