PHP学习者。下面的分页脚本似乎通常有效,但问题是在每个20页记录的页面上,当我选择一些行(通过复选框)并单击SUBMIT按钮时,20条记录的显示会跳回到第1页。行是选择没有问题,但我无法理解为什么它返回到第1页。
下面的脚本中问题是否明显?谢谢!
//-----------------|
// Add pagination.
//-----------------|
$nAdjacentPages = 3;
// If the current page number is greater than 1, then display:
// "<<" and "<" (i.e., << < ).
if ($nCurrentPage > 1)
{
echo " <a href =
'{$_SERVER['PHP_SELF']}?nCurrentPage=1'> << </a> " ;
$nPreviousPage = $nCurrentPage - 1 ;
echo " <a href =
'{$_SERVER['PHP_SELF']}?nCurrentPage=$nPreviousPage'> < </a> ";
}
// Appearance of page links when viewing page 5:
// << < 2 3 4 [5] 6 7 8 > >>
for ( $x = ( $nCurrentPage - $nAdjacentPages ) ;
$x < ( ( $nCurrentPage + $nAdjacentPages ) + 1 ) ;
$x++ )
{
// if it's a valid page number...
if ( ( $x > 0 ) and ( $x <= $nTotalPages ) )
{
// If on current page, 'highlight' but do not link.
// If not current page, make it a link.
if ( $x == $nCurrentPage )
{
echo " [<b> $x </b>] " ;
}
else
{
echo " <a href=
'{$_SERVER['PHP_SELF']}?nCurrentPage=$x'> $x </a> " ;
}
}
}
// If not last page, show '>' and '>>' links.
if ( $nCurrentPage != $nTotalPages )
{
$nNextPage = $nCurrentPage + 1;
echo " <a href =
'{$_SERVER['PHP_SELF']}?nCurrentPage=$nNextPage'> > </a> ";
echo " <a href =
'{$_SERVER['PHP_SELF']}?nCurrentPage=$nTotalPages'> >> </a> ";
}
?>
答案 0 :(得分:0)
包含提交按钮和复选框的表单需要包含一个隐藏输入,该输入提供nCurrentPage变量的当前值。
答案 1 :(得分:0)
它会跳回到第1页,因为您的表单action
可能只是script.php
。
如果您的表单使用GET
方法,则将名为nCurrentPage
的隐藏字段添加到表单中,并使用当前页面的正确值。
如果您的表单使用POST
方法,则将?nCurrentPage=$nCurrentPage
(或其他...)添加到表单action
(例如,script.php?nCurrentPage=3
),或者使用上面的隐藏字段方法并更改此脚本,以便除$_POST
之外还检查$_GET
。