问题描述
我试图找到一种显示页面导航的方法,但是仅当有30多个项目时才显示,因为1页的限制是最多30个项目。如果有30个以上的项目,则应显示到最多30个项目的下一个列表的页面导航,依此类推...(0-30、30-60、60-90 ...)
if($this->quantity_selected_rows >= $this->items_per_page && $this->quantity_total_rows > $this->items_per_page)
{show navigation}
else
{dont show navigation}
e.g.
quantity_selected_rows = 30
items_per_page = 100
quantity_total_rows = 30
for clarity:
if(30>=30 && 100 > 30)
{show navigation}
else
{dont show navigation}
我的问题是,如果我过滤网格并准确地给了我30个过滤项目,它将根据我的陈述显示页面导航,这很糟糕。
有没有更好的方法来描述这一点?
谢谢!
解决方法
也许我弄错了,但是您只需要调整if条件:
30>=30
的计算结果为true,这就是为什么过滤出30个项目的结果将显示页面导航(至少在您的示例中项目总数为100)
下面的代码执行以下操作:
如果您过滤的结果中有恰好 30 =>没有页面导航
如果过滤后的结果中少于 30 =>没有页面导航
如果您过滤的结果中有多于 30个=>显示页面导航
自从我假设:
如果过滤结果中有30个项目,则总项目必须 至少要30岁以上
您还可以缩短if条件:
if($selectedRows > $itemsPerPage) {
//Show navigation
} else {
//Don't show
}
必须更改您的变量以使其在代码段中可执行并且更易读。
您可以更改它以使用您的值而不是硬编码数字。
<?php
$selectedRows = 30; //Result of filtering the grid
$itemsPerPage = 30; //maximum amount of items per page
$totalRows = 100; //Unfiltered grid
if($selectedRows > $itemsPerPage)
echo "Show navigation";
else
echo "Don't show navigation";
请告诉我您是否需要。