You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter3搭配Bootstrap3实现分页遇问题,求技术解决方案

我来帮你搞定CodeIgniter 3结合Bootstrap 3的分页功能,你的现有代码还没配置分页相关的核心逻辑,咱们一步步修改:

1. 控制器修改(Beritasekolah.php)

首先要加载分页库,配置分页参数(包括Bootstrap样式适配),然后获取分页数据:

<?php defined('BASEPATH') OR exit('No direct script access allowed'); 
class Beritasekolah extends CI_Controller { 
    function __construct(){ 
        parent::__construct(); 
        $this->load->model('m_beritasekolah'); 
    } 

    public function index() { 
        // 加载CI分页库
        $this->load->library('pagination');

        // 分页核心配置
        $config['base_url'] = base_url('beritasekolah/index'); // 分页的基础URL
        $config['total_rows'] = $this->m_beritasekolah->count_beritasekolah(); // 总记录数(需要模型新增方法)
        $config['per_page'] = 5; // 每页显示5条数据,可按需调整
        $config['uri_segment'] = 3; // URL中分页参数的位置,比如 beritasekolah/index/5 中的5

        // 适配Bootstrap 3的分页样式
        $config['full_tag_open'] = '<ul class="pagination">';
        $config['full_tag_close'] = '</ul>';
        $config['first_link'] = '&laquo; First';
        $config['first_tag_open'] = '<li>';
        $config['first_tag_close'] = '</li>';
        $config['last_link'] = 'Last &raquo;';
        $config['last_tag_open'] = '<li>';
        $config['last_tag_close'] = '</li>';
        $config['next_link'] = '&raquo;';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';
        $config['prev_link'] = '&laquo;';
        $config['prev_tag_open'] = '<li>';
        $config['prev_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>';

        // 初始化分页配置
        $this->pagination->initialize($config);

        // 获取当前页码的偏移量
        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;

        // 获取当前页的数据
        $data['beritasekolah'] = $this->m_beritasekolah->list_beritasekolah($config['per_page'], $page);
        // 把分页链接传给视图
        $data['pagination_links'] = $this->pagination->create_links();

        $this->template->load('static','beritasekolah',$data); 
    } 

    public function readmore() { 
        $id = $this->uri->segment(3); 
        $data['beritasekolah'] = $this->m_beritasekolah->list_beritasekolah_single($id); 
        $this->template->load('static','readmore1',$data); 
    } 
}

2. 模型修改(M_beritasekolah.php)

需要新增获取总记录数的方法,同时修改列表查询方法支持分页的limit和offset参数:

<?php defined('BASEPATH') OR exit('No direct script access allowed'); 
class M_beritasekolah extends CI_Model { 
    // 获取总记录数,用于分页计算
    public function count_beritasekolah() {
        return $this->db->count_all('beritasekolah');
    }

    // 修改为支持分页的列表查询
    public function list_beritasekolah($per_page, $offset) { 
        $beritasekolah = $this->db->get('beritasekolah', $per_page, $offset); 
        return $beritasekolah; 
    } 

    public function list_beritasekolah_single($id){ 
        $single = $this->db->select('*') 
                          ->from('beritasekolah') 
                          ->where('id_beritasekolah',$id) 
                          ->get(); 
        return $single; 
    } 
}

3. 视图修改(beritasekolah.php)

更新分页链接的输出,同时顺便修复文章详情的跳转链接(原来的post.html是静态链接,要改成动态的):

<div class="section"> 
    <!-- CONTAINER --> 
    <div class="container"> 
        <!-- ROW --> 
        <div class="row"> 
            <!-- Main Column --> 
            <div class="col-md-12"> 
                <!-- section title --> 
                <div class="section-title"> 
                    <h2 class="title">Berita Sekolah</h2> 
                </div> 
                <!-- /section title --> 
                <?php foreach ($beritasekolah->result() as $key) { ?> 
                    <!-- ARTICLE --> 
                    <article class="article row-article"> 
                        <div class="article-img"> 
                            <img src="data:image/jpeg;base64,<?php echo base64_encode($key->gambar); ?>" /> 
                        </div> 
                        <div class="article-body"> 
                            <!-- 修复详情链接为动态URL -->
                            <h3 class="article-title"><a href="<?php echo base_url('beritasekolah/readmore/'.$key->id_beritasekolah); ?>"><?php echo $key->judul_berita;?></a></h3> 
                            <?php echo $key->isi_berita;?> 
                        </div> 
                    </article> 
                    <!-- /ARTICLE --> 
                <?php }?> 
                <!-- 输出分页链接 -->
                <?php echo $pagination_links; ?> 
            </div>
        </div> 
    </div> 
</div>

关键说明

  • 分页的per_page可以根据你的需求调整每页显示的条数
  • Bootstrap 3的样式已经通过控制器的配置参数实现,分页会自动渲染成Bootstrap的分页组件样式
  • 确保你的base_url在config.php里配置正确,否则分页链接会出错

内容的提问来源于stack exchange,提问作者firstama solution

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:20:39