【问题标题】:ci pagination shows same pages on all linksci 分页在所有链接上显示相同的页面
【发布时间】:2017-11-10 01:05:06
【问题描述】:

我将分页保存在我的 codeigniter 项目中。链接都显示在视图页面中。但无论我点击哪个链接都会让我进入同一页面...... 以下是我的控制器代码..

public function newsletter()
    {
        $this->load->library('pagination');
        $config = array();

        $config["base_url"] = base_url() . "index.php/welcome/newsletter";
        $this->load->model('newsletter_model');
        $total_row = $this->newsletter_model->record_count();
        $config["total_rows"] = $total_row;
        $config["per_page"] = 1;
        $config['use_page_numbers'] = TRUE;
        $config['num_links'] = $total_row;
        $config['cur_tag_open'] = '&nbsp;<a class="current">';
        $config['cur_tag_close'] = '</a>';

        $config['next_link'] = 'Next';
        $config['prev_link'] = 'Previous';

        $this->pagination->initialize($config);
        if($this->uri->segment(3)){
        $page = ($this->uri->segment(3)) ;
        }
        else{
        $page = 1;
        }
        $this->load->model('newsletter_model');
        $data["results"] =      $this->newsletter_model->fetch_data($config["per_page"], $page);
        $str_links = $this->pagination->create_links();
        $data["links"] = explode('&nbsp;',$str_links );

        $this->load->model('newsletter_model');
        $data['rm_newsletter'] = $this->newsletter_model->get_rm_newsletter();        
        $this->load->view('newsletter/newsletter',$data);
    }

以下是我的查看代码:

foreach ($lt_newsletter as $letter) {
echo $newsletter['nl_newsletter']; }

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

最后在我的模型中:

public function fetch_data($limit, $id)
    {
    $this->db->limit($limit);
    $this->db->where('nl_id', $id);
    $query = $this->db->get("ins_newsletter");
     if ($query->num_rows() > 0) 
     {
       foreach ($query->result() as $row) 
       {
        $data[] = $row;
       }
     }
    }
    public function record_count() 
    {
     return $this->db->count_all("ins_newsletter");
    }
    public function get_rm_newsletter()
    {
        $data = $this->db->query('SELECT nl.* FROM ins_newsletter nl ORDER BY nl.nl_id DESC');
        return $data->result_array();
    }

在我的浏览器中,所有链接(1,2,3,4)都清楚地显示,但是当我点击每个链接(1,2,3,4)后,它显示的是所有记录的同一页面。目前,我的数据库中有 4 条记录,它列出了所有记录。请指出我哪里出错了......!提前致谢。

【问题讨论】:

  • 那么,你得到所有页面中的所有记录了吗?
  • 是的,我显示了所有记录,但不知道在哪里为页码提供偏移量

标签: codeigniter pagination


【解决方案1】:

也许你的模型有错误,我看到你有一个

$this->db->where('nl_id', $id);

但是在控制器的函数中你传递了两个参数

$data["results"] = $this->newsletter_model->fetch_data($config["per_page"], $page);

这是分页值,一个用于记录数量(不可变),另一个用于您传递的页面(1、2、3等)

因此,您必须添加另一个参数来生成where。看到这个link in pagination does not work,如果你有其他问题可以告诉我。

【讨论】:

    猜你喜欢
    • 2014-03-29
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 2019-02-02
    • 2014-02-26
    • 1970-01-01
    相关资源
    最近更新 更多