Codeigniter 带搜索功能的分页
先说个题外话:老版本的ci只能用offset分页,ci2.1已经带了页码分页了,很好用。对应的参数是:
var $use_page_numbers = FALSE; // Use page number for segment instead of offset
这里只要传TRUE就能用页码分页了。
但是我想请教一下,默认的分页都OK,加入要带上其他参数呢?比如搜索结果页面加分页不需要考虑SEO优化,其实用最古老的方式都行?请问你们是怎么弄的。
我现在的是类似/search.php?q=搜索的词&page=1
本帖最后由 huboo82 于 2011-12-22 15:18 编辑
参考django的paginator,用php可以输出一个包含分页页码数据的数组,然后在view里自由组织。比如:
$paginator = array(
'has_next' => FALSE,
'has_previous' => FALSE,
'page_num' => FALSE,
'page' => FALSE,
'page_range' => array()
);
has_next和has_previous是判断是否有下一页和上一页,page_num是总页数,page是当前页,page_range是个数组,显示页码范围比如一个3页array(1,2,3)。然后在视图里可以随意写分页了。
例如这样的:
<?php if($pagery): ?>
<div class="pagination">
<ul>
<?php if($pagery['has_previous']): ?>
<li class="prev"><a href="<?php echo site_url('admin/posts/?page=' . ($pagery['page'] - 1) . '&status=' . $status . '&mid=' . $mid . '&q=' . $q); ?>"><?php echo lang('previous'); ?></a></li>
<?php else: ?>
<li class="prev disabled"><a href="javascript:void(0)"><?php echo lang('previous'); ?></a></li>
<?php endif; ?>
<?php foreach($pagery['page_range'] as $item):?>
<?php if($pagery['page'] == $item): ?>
<li class="active"><a><?php echo $item; ?></a></li>
<?php else: ?>
<li><a href="<?php echo site_url('admin/posts/?page=' . $item . '&status=' . $status . '&mid=' . $mid . '&q=' . $q); ?>"><?php echo $item; ?></a></li>
<?php endif; ?>
<?php endforeach;?>
<?php if($pagery['has_next']): ?>
<li class="next"><a href="<?php echo site_url('admin/posts/?page=' . ($pagery['page'] + 1) . '&status=' . $status . '&mid=' . $mid . '&q=' . $q); ?>"><?php echo lang('next'); ?></a></li>
<?php else: ?>
<li class="next disabled"><a href="javascript:void(0)"><?php echo lang('next'); ?></a></li>
<?php endif; ?>
</ul>
</div>
<?php endif; ?>
收藏起来先,到这块了再过来看看 马克一下,学习了。 不错,封装成一个单独的class,直接调用 本帖最后由 666 于 2017-7-11 04:40 编辑
哈哈 分页参数直接加个 $config['reuse_query_string'] = TRUE;搞定
页:
[1]