Php 易于使用的分页
我正试图让一个好的分页器工作,但我在让即将到来的/中间的数字正常工作方面遇到了困难 目标是显示结果集的第一个和最后5个页面,而不管您在哪个页面上,但这些第一个和最后5个页面只能在有足够的页面允许的情况下显示 分页将如下所示:> 只有几页:> 如何避免这种情况?:> 到目前为止,我的代码是:Php 易于使用的分页,php,pagination,Php,Pagination,我正试图让一个好的分页器工作,但我在让即将到来的/中间的数字正常工作方面遇到了困难 目标是显示结果集的第一个和最后5个页面,而不管您在哪个页面上,但这些第一个和最后5个页面只能在有足够的页面允许的情况下显示 分页将如下所示:> 只有几页:> 如何避免这种情况?:> 到目前为止,我的代码是: function pagination_links($page, $num_rows, $results_per_page, $each_direction = 3) { $total_pages = $
function pagination_links($page, $num_rows, $results_per_page, $each_direction = 3)
{
$total_pages = $num_rows ? ceil($num_rows / $results_per_page) : 1 ;
if($total_pages < 2)
{
return null;
}
$page = ((is_numeric($page)) && ($page >= 1) && ($page <= $total_pages)) ? (int)$page : 1 ;
$output = null;
if($page > 1)
{
$output .= '<div class="pageBtn"><<</div>' ;
}
else
{
$output .= '<div class="pageBtnDis"><<</div>' ;
}
for($i=1;$i<$total_pages;$i++)
{
if($page != $i)
{
$output .= '<div class="pageBtn">' . $i . '</div>' ;
}
else
{
$output .= '<div class="pageBtnSet">' . $i . '</div>' ;
}
if($i > 4)
{
break ;
}
}
for($i = $page - $each_direction; $i <= $page + $each_direction; $i++)
{
if(($i > 5) && ($i <= $total_pages-5))
{
if($page != $i)
{
$output .= '<div class="pageBtn">' . $i . '</div>' ;
}
else
{
$output .= '<div class="pageBtnSet">' . $i . '</div>' ;
}
}
}
for($i = $total_pages-5;$i<$total_pages;$i++) {
if($page != $i)
{
$output .= '<div class="pageBtn">' . $i . '</div>' ;
}
else
{
$output .= '<div class="pageBtnSet">' . $i . '</div>' ;
}
}
if($page < $total_pages)
{
$output .= '<div class="pageBtn">>></div>' ;
}
else
{
$output .= '<div class="pageBtnDis">>></div>' ;
}
return $output ;
函数分页链接($page、$num\u rows、$results\u per\u page、$each\u direction=3)
{
$total_pages=$num_rows?ceil($num_rows/$results_per_pages):1;
如果($total_pages<2)
{
返回null;
}
$page=((是数字($page))&&($page>=1)&&($page 1)
{
$output.='';
}
其他的
{
$output.='>>';
}
返回$output;
}我认为当前最好的解决方案是使用。它极大地简化了分页标记的创建和样式设置。我认为当前最好的解决方案是使用。它极大地简化了分页标记的创建和样式设置。高度可定制,我在这方面取得了很大的成功。这是一个高度复杂的解决方案stomizable,我在这方面取得了很多成功。谢谢,正是我在寻找的!谢谢,正是我在寻找的!PEAR是一个失败的事业。它臃肿且充满依赖性。正是面向对象代码不应该的。严肃的程序员不使用PEAR,因为PEAR多年来一直在发展。你可以编写自己的寻呼机如果你知道如何编写代码,只需30分钟。提示:寻呼机永远不应该生成HTML代码。它应该将计算结果放入数组中,让另一个类生成HTML。这是一个很好的起点。@JGEstiot是的,没有人再使用PEAR了。这是一个三年前的答案-现在我建议有人使用fram像内置分页功能的Laravel这样的工作。我不会碰Laravel。对于99%的项目来说,这完全是一种过火的行为。@JGEstiot我完全不同意,但还有很多其他框架可供选择。PEAR是一个失败的原因。它臃肿且充满依赖性。这正是面向对象的代码不应该是的。严肃的程序员不使用PEA多年来一直呈梨形的寻呼机。如果你知道如何编写代码,你可以在30分钟内编写自己的寻呼机。提示:寻呼机不应该生成HTML代码。它应该将计算结果放入数组,让另一个类生成HTML。这是一个很好的起点。@JGEstiot是的,没有人再使用pear了。T这是一个三年前的答案——现在我建议有人使用像Laravel这样内置分页的框架。我不会碰Laravel。对于99%的项目来说,这是一个完全过火的问题。@JGEstiot我完全不同意,但还有很多其他框架可供选择。