分页期间发行

时间:2012-11-22 23:36:21

标签: php url pagination append

我有一个分页方法正在发挥作用。如果我超越第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?

我确定问题在于我如何在以下网址中的网页上传输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>'; 
} 

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

这样的事情应该有效