You need to enable JavaScript to run this app. PHP分页开发:如何保持下拉框选中的每页记录数在分页跳转时不重置
优惠活动
大模型
产品
解决方案
定价
更多

PHP分页开发:如何保持下拉框选中的每页记录数在分页跳转时不重置

问题根源
  • 你当前的每页行数rowno仅从POST请求中获取,而分页导航是GET跳转链接,跳转时没有携带rowno参数,导致新页面加载时rowno被重置为默认值10
  • 前端回显选中值时只读取POST的rowno,分页跳转后POST无对应值,下拉框自然恢复默认选中10
修复步骤

步骤1:调整rowno的获取逻辑,跨请求保持用户选择

如果项目全局没有开启session,先在PHP代码最顶部添加一行开启session的代码,再修改rowno的获取逻辑:

// 全局没开session的话加这行,放在PHP代码最顶部
session_start();

$currentpage = isset($_GET['currentpage']) ? $_GET['currentpage'] : 1;
// 优先取当前请求的rowno,不存在则取之前存储的,仍不存在则默认10
$rowno = $_REQUEST['rowno'] ?? $_SESSION['rowno'] ?? 10;
// 把用户选择的行数存入session,跨请求持久化
$_SESSION['rowno'] = $rowno;
$no_of_records_per_page = $rowno;

这里用$_REQUEST可以同时接收下拉框选择提交的POST参数、分页跳转携带的GET参数。

步骤2:给所有分页跳转链接拼接rowno参数

修改所有分页导航的跳转地址,带上当前选择的每页行数:

// 上一页按钮
if($currentpage >= 2)
{
    echo "<a class='nav_a' href='viewreg.php?currentpage=".($currentpage - 1)."&rowno=".$rowno."'>-Previous-</a>";
}

// 页码按钮
for($i = 1; $i <= $totalpages; $i++)
{
    echo '<a class="nav_a" href = "viewreg.php?currentpage='.$i.'&rowno='.$rowno.'">'.'| '.$i.'  '.'</a>';
}

// 下一页按钮
if($currentpage < $totalpages)
{
    echo "<a class='nav_a' href='viewreg.php?currentpage=".($currentpage + 1)."&rowno=".$rowno."'>-Next-</a>";
}

步骤3:优化下拉框选中回显(可选,比前端JS回显更稳定)

直接在后端输出option的时候判断是否选中,不需要依赖JS回显,兼容性更好:

<select class="name" id="rowno" name="rowno">
    <option value='all' hidden disabled <?php if($rowno == 'all') echo 'selected'; ?>>All</option>
    <option value='10' <?php if($rowno == 10) echo 'selected'; ?>>10</option>
    <option value='15' <?php if($rowno == 15) echo 'selected'; ?>>15</option>
    <option value='20' <?php if($rowno == 20) echo 'selected'; ?>>20</option>
    <option value='25' <?php if($rowno == 25) echo 'selected'; ?>>25</option>
    <option value='30' <?php if($rowno == 30) echo 'selected'; ?>>30</option>
</select>

如果使用了这种后端直接输出选中状态的方式,可以删掉原来JS里回显选中值的逻辑,避免冲突。

额外优化建议

你当前的SQL语句直接拼接了$startfrom和$no_of_records_per_page变量,存在SQL注入风险,建议改成参数绑定的方式传入这两个值,不要直接拼接到SQL字符串中。

内容的提问来源于stack exchange,提问作者Ndongesit Edet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 12:06:04