1

質問があります。検索ページを作成したいのですが、結果を並べ替えるにはget変数が必要です。したがって、誰かがそのGET変数なしでページに入った場合は、ページをリロードして表示させます。たとえば、www.myweb.com / searchと入力すると、自動的にリロードされてwww.myweb.com/search/?sort=ascendingに変更されます(その変数が必要です)。

あなたが私を理解してくれることを願っています、さようなら

4

3 に答える 3

1

これはあなたがやろうとしていることでうまくいくと思います:

if (empty($_GET['sort'])) {
    header('Location: ' . $_SERVER['REQUEST_URI'] . '?sort=ascending');
    exit();
}
于 2013-01-14T02:41:24.180 に答える
0

が要求されたときに実行されるファイル内からwww.myweb.com/search、$_GET['sort'] が使用できない場合のデフォルト設定が必要です。この回答では、指定しなかったため、例として PHP を使用します。

<?php
if (empty($_GET['sort'])) {
    $sort = 'ascending';
}
// the rest of your code

または、リダイレクトを強制することもできますが、前の例の方がより洗練されています。

<?php
if (empty($_GET['sort'])) {
    header('Location: www.myweb.com/search/?sort=ascending');
    exit;
}

2 番目の解決策では、他の $_GET など、他のものは破棄されることに注意してくださいitem=widgetcolor=blue

!isset回答として投稿する他の人に注意してください。それはうまくいきません!例:

www.myweb.com/search/?sort=&foo=bar

!isset($_GET['sort'])=== 嘘!

empty($_GET['sort'])この状況で取るべき適切なルートです。

于 2013-01-14T02:44:36.823 に答える
-2

リダイレクトするよりも、自分で変数を定義することをお勧めします。変数が定義されているかどうかを isset で確認してください。定義されていない場合は、以下のように自分で設定できます。

if(!isset($_GET['sort']))
{
$_GET['sort']='ascending";
}
于 2013-01-14T02:44:03.933 に答える