使用 PHP 为 prev/next 分页脚本中的完整列表中的项目定义 link
Using PHP to define the link for items in a complete list within a prev/next pagination script
我正在使用@Nev Stokes 非常优雅的分页脚本:
here's the SO link
我的脚本版本当前配置为使用 prev/next 按钮一次滚动浏览 sql table 的每一行。我正在尝试添加一个下拉列表,该列表吐出所有 sql 行并单击其中之一将页面前进到正确的页面 #.
分页组件工作正常。但是,对于下拉列表,我无法为每个列表项设置 href 值。
计算 sql 行数后,分页脚本使用以下内容定义当前页面:
// How many items to list per page
$limit = 1;
// How many pages will there be
$pages = ceil($total / $limit);
// What page are we currently on?
$page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
'options' => array(
'default' => 1,
'min_range' => 1,
),
)));
然后为下一个按钮将$page加1,为上一个按钮从$page减1,并写入按钮的href。例如)
<a href="?page='.($page + 1).'"title="Next page">
至于我使用的下拉列表:
//begin dropdown list
echo '<div class="dropdown" style="display:inline; margin-left:5%;">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Browse by address
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">';
//get all sql rows
$stmtdd = $conn->prepare('SELECT * FROM listings Order by id DESC');
$stmtdd->execute();
$stmtdd->setFetchMode(PDO::FETCH_ASSOC);
$iteratordd = new IteratorIterator($stmtdd);
foreach ($iteratordd as $row) {
$adrdd = $row['address'];
//print the address and link to the page
echo '<li role="presentation"><a role="menuitem" tabindex="-1" href="?page='.$currpagehref.'">'.$adrdd.'</a></li>';}
echo '</ul>
</div>';
我如何定义 $currpagehref(列表项的 href),它需要迭代 sql 行计数中的数字?提前致谢!
由于每行使用 1 页,因此可以使用迭代器中行的索引作为页码。
为此更改您的 foreach :
foreach ($iteratordd as $rowIndex => $row) {
并这样定义你的$currpagehref
href="?page='.($rowIndex + 1).'"
$rowIndex
是从 0 开始的,所以第 1 页是 $rowIndex = 0
,依此类推。
我正在使用@Nev Stokes 非常优雅的分页脚本:
here's the SO link
我的脚本版本当前配置为使用 prev/next 按钮一次滚动浏览 sql table 的每一行。我正在尝试添加一个下拉列表,该列表吐出所有 sql 行并单击其中之一将页面前进到正确的页面 #.
分页组件工作正常。但是,对于下拉列表,我无法为每个列表项设置 href 值。
计算 sql 行数后,分页脚本使用以下内容定义当前页面:
// How many items to list per page
$limit = 1;
// How many pages will there be
$pages = ceil($total / $limit);
// What page are we currently on?
$page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
'options' => array(
'default' => 1,
'min_range' => 1,
),
)));
然后为下一个按钮将$page加1,为上一个按钮从$page减1,并写入按钮的href。例如)
<a href="?page='.($page + 1).'"title="Next page">
至于我使用的下拉列表:
//begin dropdown list
echo '<div class="dropdown" style="display:inline; margin-left:5%;">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
Browse by address
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">';
//get all sql rows
$stmtdd = $conn->prepare('SELECT * FROM listings Order by id DESC');
$stmtdd->execute();
$stmtdd->setFetchMode(PDO::FETCH_ASSOC);
$iteratordd = new IteratorIterator($stmtdd);
foreach ($iteratordd as $row) {
$adrdd = $row['address'];
//print the address and link to the page
echo '<li role="presentation"><a role="menuitem" tabindex="-1" href="?page='.$currpagehref.'">'.$adrdd.'</a></li>';}
echo '</ul>
</div>';
我如何定义 $currpagehref(列表项的 href),它需要迭代 sql 行计数中的数字?提前致谢!
由于每行使用 1 页,因此可以使用迭代器中行的索引作为页码。
为此更改您的 foreach :
foreach ($iteratordd as $rowIndex => $row) {
并这样定义你的$currpagehref
href="?page='.($rowIndex + 1).'"
$rowIndex
是从 0 开始的,所以第 1 页是 $rowIndex = 0
,依此类推。