Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将除一个以外的所有$\u GET值保存到下一页_Php_Get_Pagination_Next - Fatal编程技术网

Php 将除一个以外的所有$\u GET值保存到下一页

Php 将除一个以外的所有$\u GET值保存到下一页,php,get,pagination,next,Php,Get,Pagination,Next,我有一个表,其中填充了一些行,它是根据我的分页脚本显示的。此表中有两个GET表单,用于处理排序和每页的行数。发送表单时,URL变成例如:?page=2&order=desc&view=10 问题是,当我单击其他页面时,我不知道如何传递这些订单和视图值。这是指向“我的脚本”上一页(或下一页)的链接: $pagination.= "<li><a href=\"$targetpage?page=$prev\">Prev</a></li>"; 使用以下命

我有一个表,其中填充了一些行,它是根据我的分页脚本显示的。此表中有两个GET表单,用于处理排序和每页的行数。发送表单时,URL变成例如:
?page=2&order=desc&view=10

问题是,当我单击其他页面时,我不知道如何传递这些
订单
视图
值。这是指向“我的脚本”上一页(或下一页)的链接:

$pagination.= "<li><a href=\"$targetpage?page=$prev\">Prev</a></li>";
使用以下命令编辑上述行:

$pagination.= "<li><a href=\"$targetpage?page=$prev{$build_query}\">Prev</a></li>";
$pagination.=“
  • ”;
    当然,只要我点击它给我的链接

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

    所以页面被重复。我还试图
    取消设置($_GET['page'])
    但我不知道如何传递上一页的值以正确设置
    $\u GET['page']

    编辑1


    整个分页代码都写在一个函数中,因此要传递的$\u 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);
    }
    

    您可以在调用函数时将所需的页码作为参数传入。

    可能需要有关您的过程的详细信息。@Jonast92我编辑了一些有关如何使用
    http\u build\u query($\u GET)
    的详细信息。如果您还需要什么,请告诉我。您是否检查了
    页面上的拼写?数组键永远不能被复制..奇怪的…@Andrew它被复制了,因为我在
    {$build\u query}
    之前写了
    page=$prev
    ,但我不知道如何摆脱
    page=$prev
    并在单击链接时将$prev值传递给
    $\u get['page']
    。我可能会尝试将$prev保存到一个变量,然后使用
    unset($\u GET['page'])
    $\u GET['page']=$variable
    。让我想想。@RiggsFolly
    $prev
    只是
    $page-1
    其中
    $page
    $\u GET['page']
    。这很简单。如果我在第2页,
    $prev
    是1。另外,
    $targetpage
    index.php
    。谢谢!我试过了,它给了我
    ?page=1?order=asc&view=30
    ,但我刚刚把
    $query='?
    编辑成
    $query='&'
    ,效果很好。哦,是的,我会做出改变。实际上,我将更新它,这样您就可以在这个函数中生成整个内容。将字符串设置为两个不同的位置没有意义
    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);
    }