将所有$ _GET值保存到下一页除外

时间:2015-09-09 17:14:11

标签: php get pagination next

我有一个表格,里面装满了一些行,并根据我的分页脚本显示。在此表中有两个GET表单,用于处理排序和每页行数。发送表单后,URL将变为:?page=2&order=desc&view=10

问题在于,当我点击其他页面时,我不知道如何传递这些orderview值。这是我脚本上一页(或下一页)的链接:

$pagination.= "<li><a href=\"$targetpage?page=$prev\">Prev</a></li>";

$prev$page - 1,其中$page$_GET['page']。当我在第2页时,我需要转到第1页,我只需点击上面的链接,我就需要在网址上随身携带orderview

我试过

$build_query = http_build_query($_GET);

使用以下内容编辑上述行:

$pagination.= "<li><a href=\"$targetpage?page=$prev{$build_query}\">Prev</a></li>";

但当然,只要我点击链接就会给我

?page=1page=2&order=desc&view=10

所以页面重复了。我也试过unset($_GET['page']);,但我不知道如何传递上一页的值来正确设置$_GET['page']

编辑1

整个分页代码都写在函数内部,因此要传递的$ _GET值在页面之间是不同的。

1 个答案:

答案 0 :(得分:0)

您可以构建自己的查询字符串函数:

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);
}

当您调用该函数时,您可以将所需的页码作为参数传递。