0

ちょっと困ったこと。基本的に、ページネーションを作成しました。問題は、ページ番号の URL をクリックするたびに、既に存在する場合でも、パラメーターを URL に追加するだけです。

たとえば、私はページに着陸します。私の URL は example.com/page?pagenum=1 になりました。2 番目のページをクリックすると、URL は example.com/page?pagenum=1&pagenum=2 になります。これですべて正常に動作しますが、ご想像のとおり、少し面倒になるため、URL に既に含まれているパラメーターを更新することをお勧めします。現在、次を使用して現在のページの URL を取得しています。

<?php
    function curPageURL() {
     $pageURL = 'http';
     if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
     $pageURL .= "://";
     if ($_SERVER["SERVER_PORT"] != "80") {
     $pageURL .=      $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
     $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>

次に、リンクは次のようなものです。

<a href='<?php echo curPageURL(); ?>&pagenum=<?php echo "1"; ?>'> 1 </a>

更新 保持する必要がある URL に他のパラメーターがあります。「pagenum」を更新するだけで済みます。

4

2 に答える 2

0

http_build_query次のように使用できます。

$all_params = $_GET;
$all_params["page"] = "2";
$link = "page.php?" . http_build_query($all_params); // "page.php?page=2&foo=bar"
于 2013-09-16T14:51:06.477 に答える
0

REQUEST_URIパスとクエリ文字列の両方が含まれており、ページをめくるたびに新しいクエリ文字列を追加しているため、問題が発生します。パスを抽出するには、この回答から取得した次のコードを使用できます。

$path = strtok($_SERVER["REQUEST_URI"], '?');

次に、既存のクエリ文字列フィールドをコピーできますが、次のものを削除しpagenumます。

$fields = $_GET;
unset($fields['pagenum']); // remove any existing pagenum value
$path .= '?' . http_build_query($fields); // re-append the query string

次に、既存のリンク コードを多かれ少なかれ使用できます。

<a href='<?php echo $path; ?>&pagenum=<?php echo "1"; ?>'> 1 </a>
于 2013-09-16T15:06:16.207 に答える