CodeIgniter分页函数调用异常:自定义分页无法正常显示
解决自定义分页函数无法显示的问题
兄弟,看你贴的代码明显没写完,先帮你梳理下几个大概率导致分页不显示的坑,一步步排查:
1. 先补全缺失的分页配置
你代码里$config['cur...'截断了,当前页标签(cur_tag_open/cur_tag_close)是分页样式渲染的关键项,必须补全。另外还有几个核心必填参数绝对不能少:
public function pagination(){ // 核心分页参数(必须配置) $config['base_url'] = site_url('你的控制器/目标方法'); // 分页跳转的基础URL $config['total_rows'] = $this->db->count_all('你的数据表名'); // 总记录数 $config['per_page'] = 10; // 每页显示条数 // 你写了一半的样式配置补全+修正转义问题 $config['full_tag_open'] = "<ul class='pagination'>"; $config['full_tag_close'] = '</ul>'; $config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li class="active"><a href="#">'; $config['cur_tag_close'] = '</a></li>'; // 可选:补上前一页、后一页的标签配置 $config['prev_tag_open'] = '<li>'; $config['prev_tag_close'] = '</li>'; $config['next_tag_open'] = '<li>'; $config['next_tag_close'] = '</li>'; }
⚠️ 注意:你原来用的</>转义字符没必要,直接写</>就行,转义后浏览器会把标签当成文本显示,导致分页样式失效。
2. 别忘了初始化分页类
写完配置后,必须加载分页库并初始化配置,不然所有设置都是白搭:
// 放在配置代码之后 $this->load->library('pagination'); $this->pagination->initialize($config);
3. 视图里要输出分页链接
后端配置好后,要把分页生成的HTML传递到视图并输出:
// 在控制器里把分页链接赋值给变量 $data['page_links'] = $this->pagination->create_links(); $this->load->view('你的视图文件', $data);
然后在对应视图的合适位置(比如列表下方)添加:
<?php echo $page_links; ?>
4. 列表数据要配合分页查询
如果只是分页配置对了,但列表查询没加limit和offset,分页链接就算显示了也没实际效果:
// 获取URL中的偏移量(默认从第0条开始) $offset = $this->uri->segment(3, 0); // 分页查询数据 $data['list_data'] = $this->db->limit($config['per_page'], $offset)->get('你的数据表名')->result();
完整可参考的示例函数
public function pagination(){ // 1. 核心分页配置 $config['base_url'] = site_url('article/list'); $config['total_rows'] = $this->db->count_all('articles'); $config['per_page'] = 10; // 2. 分页样式配置 $config['full_tag_open'] = "<ul class='pagination'>"; $config['full_tag_close'] = '</ul>'; $config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li class="active"><a href="#">'; $config['cur_tag_close'] = '</a></li>'; $config['prev_link'] = '上一页'; $config['next_link'] = '下一页'; // 3. 加载并初始化分页 $this->load->library('pagination'); $this->pagination->initialize($config); // 4. 分页查询数据 $offset = $this->uri->segment(3, 0); $data['articles'] = $this->db->limit($config['per_page'], $offset)->get('articles')->result(); // 5. 传递分页链接到视图 $data['page_links'] = $this->pagination->create_links(); // 加载视图 $this->load->view('article_list', $data); }
视图里的输出:
<div class="article-list"> <!-- 这里渲染你的列表数据 --> <?php foreach($articles as $item): ?> <div class="article-item"><?php echo $item->title; ?></div> <?php endforeach; ?> </div> <!-- 分页链接 --> <div class="pagination-container"> <?php echo $page_links; ?> </div>
内容的提问来源于stack exchange,提问作者user9535105
相关产品推荐
相关产品推荐

