0

我有一个有效的分页方法。如果我导航到第 2 页之外,或者使用“上一个”或“下一个”按钮,我的当前页面和总页面变量将附加到 URL,结果如下:

http://localhost/project/profile.php?s=0&p=2&s=1&p=2&select_genre=Sci-Fi&select_length=1-25&query=Submit

注意额外的 s 和 p 分配

$s 定义起始页 $p 定义总页数

有没有办法防止 $s 和 $p 的值附加到 URL 中?

我确定问题在于我如何在下面 URL 的页面中携带 GET 值,我不确定如何更正它:

if($pages > 1)
{
    echo '<br /><p>'; //Add some extra space

    $current_page = ($start/$display) + 1;

    //If it's not the first page, make a PREV button

    if($current_page != 1)
    {
        echo '<a href=profile.php?s=' . ($start - $display) . '&p=' . $pages . '&' . http_build_query($_GET) . '"> Previous</a> ';
    }

    //Make all the numbered pages:

    for ($i = 1; $i <= $pages; $i++)
    {
        if($i != $current_page)
        {
            echo '<a href="profile.php?s=' . (($display * ($i - 1))) . '&p=' . $pages . '&' . http_build_query($_GET) . '">' . $i . '</a>';
        }
        else {
                 echo $i . ' ';
             }
    }//END FOR LOOP

    // If it's not the last page, make a Next button:

    if ($current_page != $pages)
    {
        echo '<a href="profile.php?s=' . ($start + $display) . '&p=' . $pages . '&' . http_build_query($_GET) . '"> Next</a>';
    }

    echo '</p>'; 
} 

谢谢!

4

1 回答 1

2

好吧,如果 $_GET 包含 s 或 p 你最终会加倍:

$clean = $_GET;
unset($clean['p']);    
unset($clean['s']);
echo '/someurl?' . http_build_query($clean);

像这样的东西应该工作

于 2012-11-23T00:02:07.623 回答