1つのフォームに2つの送信ボタンがある質問する

1つのフォームに2つの送信ボタンがある質問する

フォームに送信ボタンが2 つあります。サーバー側でどちらが押されたかを判断するにはどうすればよいでしょうか?

ベストアンサー1

解決策 1:
各入力に異なる値を与え、名前は同じままにします。

<input type="submit" name="action" value="Update" />
<input type="submit" name="action" value="Delete" />

次に、コード内でどれがトリガーされたかを確認します。

if ($_POST['action'] == 'Update') {
    //action for update here
} else if ($_POST['action'] == 'Delete') {
    //action for delete
} else {
    //invalid action!
}

問題は、入力内のユーザーに表示されるテキストにロジックを結び付けてしまうことです。


解決策 2:
それぞれに一意の名前を付け、$_POST でその入力が存在するかどうかを確認します。

<input type="submit" name="update_button" value="Update" />
<input type="submit" name="delete_button" value="Delete" />

コードでは次のようになります:

if (isset($_POST['update_button'])) {
    //update action
} else if (isset($_POST['delete_button'])) {
    //delete action
} else {
    //no button pressed
}

おすすめ記事