PHP实现分页操作,使用speedphp框架,所以分页时基于此框架的pager对象实现。不多说,上代码及样例:
html页面端代码:
form中要隐藏个page,用于传值,记录分页值:
<input type="hidden" id="page" name="page" class="form-control" value="">
<!-- 分页开始 -->
<{if $pager}>
<div class="row">
<div class="col-sm-12">
<div style="float:left;line-height:32px;" class="dataTables_info" id="DataTables_Table_0_info" role="alert" aria-live="polite" aria-relevant="all">共<{$pager.total_count}>记录,第<{$pager.current_page}>/<{$pager.total_page}>页,每页<{$pager.page_size}>条记录</div>
<div style="float:right;" >
<ul class="pagination" style="margin:0px 0px;">
<li class="paginate_button first " aria-controls="DataTables_Table_0" tabindex="0" id="DataTables_Table_0_first"><a href="javascript:gotopage('<{$pager.first_page}>');">首页</a></li>
<{if $pager.current_page == $pager.first_page }>
<li class="paginate_button previous disabled" aria-controls="DataTables_Table_0" tabindex="0" id="DataTables_Table_0_previous"><a href="javascript:gotopage('<{$pager.prev_page}>');">上一页</a></li>
<{else}>
<li class="paginate_button previous" aria-controls="DataTables_Table_0" tabindex="0" id="DataTables_Table_0_previous"><a href="javascript:gotopage('<{$pager.prev_page}>');">上一页</a></li>
<{/if}>
<{if $pager.all_pages}>
<{foreach $pager.all_pages as $k}>
<{if $pager.current_page == $k}>
<li class="paginate_button active" aria-controls="DataTables_Table_0" tabindex="0"><a href="javascript:gotopage('<{$k}>');"><{$k}></a></li>
<{else}>
<li class="paginate_button" aria-controls="DataTables_Table_0" tabindex="0"><a href="javascript:gotopage('<{$k}>');"><{$k}></a></li>
<{/if}>
<{/foreach}>
<{/if}>
<{if $pager.current_page == $pager.last_page }>
<li class="paginate_button next disabled" aria-controls="DataTables_Table_0" tabindex="0" id="DataTables_Table_0_next"><a href="javascript:gotopage('<{$pager.next_page}>');">下一页</a></li>
<{else}>
<li class="paginate_button next" aria-controls="DataTables_Table_0" tabindex="0" id="DataTables_Table_0_next"><a href="javascript:gotopage('<{$pager.next_page}>');">下一页</a></li>
<{/if}>
<li class="paginate_button last " aria-controls="DataTables_Table_0" tabindex="0" id="DataTables_Table_0_last"><a href="javascript:gotopage('<{$pager.last_page}>');">尾页</a></li>
</ul>
</div>
</div>
</div>
<{/if}>
<!-- 分页结束 -->
<{else}>
<div class="row">
<div class="col-sm-12">
<div class="ibox-content">
<div class="row" style="text-align:center;">
没有找到匹配的记录!
</div>
</div>
</div>
</div>
<{/if}>
需要加个分页跳转js方法
function gotopage(page)
{
$("#page").val(page);
$("#queryForm").submit();
}
PHP端分页代码:
分2块:1是按查询条件查询数据总数 2是查询数据明细展示
$voicetipinfo = new Model("t_voicetip_info");
$sql = "select count(1) as allcount from 统计sql与下方查询sql需一致 ".$condition;
$voicecount = $voicetipinfo->query($sql,$param);
$pager = $voicetipinfo->pager($page, 10, 10, $voicecount[0]['allcount']);
$this->pager = $pager;
$pagerparam = '';
if(isset($pager))
{
$pagerparam = " limit ".$pager['offset'].",".$pager['limit'];
}
$sql2 = "完整查询sql".$pagerparam;
$result = $voicetipinfo->query($sql2,$param);
OK,按照以上实现就可以正常展示数据分页了,效果图如下: