0

ハングマンゲームを作っています。ユーザーが文字をクリックすると、それが URL に追加されguess=Gますが、リセット ボタン (送信ボタン) をクリックすると、推測が URL に残り、次の関数が起動します。

    function reset_game() {
        $_SESSION["word"] = generate_word("dictionary.txt");
        $_SESSION["word-progress"] = turn_to_underscores($_SESSION["word"]);
        $_SESSION["chances-left"] = 9;
        $_SESSION["guesses"] = array();
        $_SESSION["incorrect-guesses"] = array();

        header('Location: index.php');
    }

これは素晴らしいことですが、GET 要求がまだ URL にあるため、ボタンをもう一度クリックするまで、推測として送信されます。

これは、私のコードのさらに下で、GET リクエストがあるかどうかを確認し、ある場合はそれに基づいて処理するためです。推測が正しいかどうかを確認するときにifステートメントを使用する代わりに、リセットボタンのクリック時にGETリクエストを明確にする方法はありますか(JavaScriptではなく、PHPの場合はさらにそうです)。後者の解決策は...回避策のように聞こえます。

4

2 に答える 2

1

各送信ボタンに異なるname属性値を与え、 で見つけた名前に基づいて処理を行います$_GET。たとえば、「推測」と「リセット」という名前の送信ボタンがあるisset($_GET['guess'])場合、「推測」ボタンがクリックさisset($_GET['reset'])れたかどうか、および「リセット」ボタンがクリックされたかどうかをテストできます。

このアプローチの詳細については、この質問と回答を参照してください。

または、2 つのボタンを異なる<form>要素に配置すると、それぞれ<input>の要素が互いに分離されます。

于 2013-02-19T16:06:08.333 に答える
0

理解した。GETリクエストをURLに保持するaction="index.php"だけでなく、属性を使用してフォームを送信したことを確認してください。action=""

于 2013-02-19T16:32:20.710 に答える