0

//エラー: 情報は追加されますが、置き換えられません。

<form action="testme.php" method="get">
    <p>
        <input name="search" type="text" value="">
        <input type="submit" name="button" id="button" value="Submit">
    </p>

    <h3>Filter Results</h3>
<p><a href="testme.php?filter='Action'<?php if (isset($_GET['search']) && !empty($_GET['search'])) {echo '&search='.$_GET['search'];}
?>">Action</a></p>


<p><a href="testme.php?filter='Comedy'<?php if (isset($_GET['search']) && !empty($_GET['search'])) {echo '&search='.$_GET['search'];}
?>">Comedy</a></p>

</form>


<?php

if (isset($_GET['button']) && isset($_GET['search']) != '') {
    echo $_GET['search'];

}
elseif (isset($_GET['filter']) == "Action" && isset($_GET['search']) != '') {
    echo "Action " . $_GET['search'];

}

elseif (isset($_GET['filter']) == "Action" && isset($_GET['search']) == '') {

    echo " No action Involved ";
}

if (isset($_GET['filter']) == "Comedy" && isset($_GET['search']) == '') {

    echo " No Comedy Involved";
}

//リンクのいずれかをクリックすると、次のようになります: No action Involved No comedy Involved. しかし、表示したいのは 1 つだけですか?>

4

4 に答える 4

0

GET['search'] を定義してから、これを宣言する必要があります <a href="index.php?filter='Action'&search=<?php echo $_GET['search']

于 2013-07-25T19:53:40.813 に答える
0

これはうまくいくはずです

<a href="index.php?filter='Action'&search=<?=@$_GET['search']; ?>>
于 2013-07-25T19:58:22.417 に答える
0

その理由$_GET['search']は未定義です

正しいコード:

 <form action="index.php" method="get">
    <p>
        <input name="search" type="text" value="">
        <input type="submit" name="button" id="button" value="Submit">
    </p>



    <h3>Filter Results</h3>
    <p>
    <a href="index.php?filter='Action'&search=<?php if (isset($_GET['search'])) { echo $_GET['search']; } ?>">Action</a>
    </p>
</form>


    <?php

if (isset($_GET['button']) && isset($_GET['search']) != '') {
    echo $_GET['search'];

}
elseif (isset($_GET['filter']) == "Action" && isset($_GET['search']) != '') {
    echo "Action " . $_GET['search'];

}
//the logic is to click on the action without filling in the search form and get it to work

elseif (isset($_GET['filter']) == "Action" && empty($_GET['search'])) {

    echo "No action Involved";
}
?>
于 2013-07-25T19:50:53.020 に答える
0

PHP は、ページがブラウザーに送信された後ではなく、送信される前に実行されます。そのため、ページが最初に送信された時点では、リンクを構築するためのコードにはまだ値がありません。

于 2013-07-25T19:51:45.223 に答える