【问题标题】:Codeigniter Pagination: Error Autoincrement NumberCodeigniter 分页:错误自动增量编号
【发布时间】:2017-04-05 14:29:47
【问题描述】:

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

Incrementing Operator in Foreach Loop for Pagination

当我的分页活动时它可以工作。当我的分页 inactive 时,我的网站在自动递增编号上有错误。图片如下:

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');
  }

这是我的观点(带有自动增量减去错误的表格):

<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>

【问题讨论】:

  • 我已经更新了控制器中的代码检查它。
  • @Gaurav 现在可以工作了。很抱歉没有注意到你提供的所有更新。谢谢:D

标签: php codeigniter pagination


【解决方案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>

【讨论】:

  • @FahmiPoetra 我无法理解您的问题。以前的分页处于活动状态。
  • 我没有在 $data["allgate"] 中看到具有 ($config["per_page"], $offset)->result(); 的控制器更新对不起这是我的错。它现在工作。谢谢:D
  • @Gaurav 是吗 ($config["per_page"], $offset)->result();或 ($config["per_page"], $offset);
  • @KaustavChakravorty 它取决于您返回“资源”或“结果”的模型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 2011-05-23
  • 2019-01-31
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
相关资源
最近更新 更多