将除一个以外的所有 $_GET 值保存到下一页
Save all $_GET values except one to the next page
我有一个 table,其中填充了一些行,它是根据我的分页脚本显示的。在此 table 中,有两个 GET 表单处理排序和每页的行数。发送表格后,URL 变为例如:?page=2&order=desc&view=10
.
问题是当我点击不同的页面时,我不知道如何传递 order
和 view
值。这是我的脚本上一页(或下一页)的link:
$pagination.= "<li><a href=\"$targetpage?page=$prev\">Prev</a></li>";
$prev
是 $page - 1
,其中 $page
是 $_GET['page']
。当我在第 2 页时,我需要转到第 1 页,我只需单击上面的 link,我需要带上 URL 上的 order
和 view
.
我试过
$build_query = http_build_query($_GET);
用这个编辑上面的行:
$pagination.= "<li><a href=\"$targetpage?page=$prev{$build_query}\">Prev</a></li>";
当然,只要我点击 link 它就会给我
?page=1page=2&order=desc&view=10
所以页面重复了。我也试过 unset($_GET['page']);
但我不知道如何传递上一页值以正确设置 $_GET['page']
。
编辑 1:
整个分页代码都写在一个函数中,因此要传递的 $_GET 值在页面之间是不同的。
您可以构建自己的查询字符串函数:
function generate_query_string($page_num)
{
$query = '?';
foreach ($_GET as $key => $value) {
if ($key == 'page') {
$query.=$key.$page_num;
} else {
$query.=$key.'='.$value.'&';
}
}
// remove trailing '&'
return substr($query, 0, strlen($query) - 1);
}
您可以在调用该函数时将所需的页码作为参数传入。
我有一个 table,其中填充了一些行,它是根据我的分页脚本显示的。在此 table 中,有两个 GET 表单处理排序和每页的行数。发送表格后,URL 变为例如:?page=2&order=desc&view=10
.
问题是当我点击不同的页面时,我不知道如何传递 order
和 view
值。这是我的脚本上一页(或下一页)的link:
$pagination.= "<li><a href=\"$targetpage?page=$prev\">Prev</a></li>";
$prev
是 $page - 1
,其中 $page
是 $_GET['page']
。当我在第 2 页时,我需要转到第 1 页,我只需单击上面的 link,我需要带上 URL 上的 order
和 view
.
我试过
$build_query = http_build_query($_GET);
用这个编辑上面的行:
$pagination.= "<li><a href=\"$targetpage?page=$prev{$build_query}\">Prev</a></li>";
当然,只要我点击 link 它就会给我
?page=1page=2&order=desc&view=10
所以页面重复了。我也试过 unset($_GET['page']);
但我不知道如何传递上一页值以正确设置 $_GET['page']
。
编辑 1:
整个分页代码都写在一个函数中,因此要传递的 $_GET 值在页面之间是不同的。
您可以构建自己的查询字符串函数:
function generate_query_string($page_num)
{
$query = '?';
foreach ($_GET as $key => $value) {
if ($key == 'page') {
$query.=$key.$page_num;
} else {
$query.=$key.'='.$value.'&';
}
}
// remove trailing '&'
return substr($query, 0, strlen($query) - 1);
}
您可以在调用该函数时将所需的页码作为参数传入。