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 が含まれている場合、それらを 2 倍にすることになります。

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

そのようなものはうまくいくはずです

于 2012-11-23T00:02:07.623 に答える