bugfix> php > 投稿

同じページに2つのフォームがあり、それぞれに異なるフィールドと異なる送信ボタン名があります。

<button type="submit" name="formOne">Submit form</button>
<button type="submit" name="formTwo">Submit form</button>

私の mailer.php でどの送信ボタンがクリックされたかを確認し、それに応じてコードを処理します。

私がこれまでに持っているコードは、次のように単一のフォームで機能します。

if ($_SERVER["REQUEST_METHOD"] == "POST" ) {
    // my form 1 data
    // do stuff
}

しかし、私は if/else を追加する必要があると思ったどの送信ボタンがクリックされたかを確認するには、次のようにします。

if ($_SERVER["REQUEST_METHOD"] == "POST" ) {
    if($_POST['formOne']){
        // form 1 data
        // my form 1 data
        // do stuff
    }
    if($_POST['formTwo']){
        // form 2 data
        // my form 2 data
        // do stuff
    }
}

これはうまくいかないようです。私が受け取るエラーは次のとおりです。

Notice: Undefined index: formOnein ... line 7

どうすればこれを達成できますか?

回答 3 件
  • 必要に応じて、代わりに非表示の入力を使用できます。通常のテキスト入力と同様に、PHPから非表示の入力にアクセスできます。

    <form method="GET" action="https://postman-echo.com/get">
        <input type="hidden" name="form" value="one" />
        <button type="submit">Submit form</button>
    </form>
    
    

  • var isset() かどうかを確認するのを忘れた 。

    if ($_SERVER["REQUEST_METHOD"] == "POST" ) {
        if(isset($_POST['formOne'])){
            // form 1 data
            // my form 1 data
            // do stuff
        }
        if(isset($_POST['formTwo'])){
            // form 2 data
            // my form 2 data
            // do stuff
        }
    }
    
    

  • 代わりに

    <button type="submit" name="formOne">Submit form</button> <button type="submit" name="formTwo">Submit form</button>

    使用する

    <input type="submit" name="formOne" value="Submit Form"/>
    <input type="submit" name="formTwo" value="Submit Form"/>
    
    

    PHPコード:-

    <? if(isset($_POST['formOne'])){echo "form One";} elseif(isset($_POST['formTwo'])){echo "form Two"; }?>
    
    

あなたの答え