同じフォームで 2 つの異なる送信ボタンを使用しようとしています。各送信ボタンは、特定のサーブレットを呼び出します。
これを行うために onclick を使用しようとしましたが、送信ボタンがフォームの外にある場合、サーブレットでパラメーターを受け取ることができません。null を返します。
とにかくこれを行うことはありますか?
フォームが送信された後、送信ボタンに別の名前を付けて、サーバー上でその名前を確認するだけでよいと思います。フォームボタンに応じてフォームアクションを変更する方法があります。これは、グーグルと同じくらい簡単に解決できます。
これを参照してください:1つのフォームに2つの送信ボタン
そしてこれ:複数の送信ボタンPHPの異なるアクション
送信ボタンは 2 つ (またはそれ以上) 持つことができますが、ターゲットは 1 つだけです (以下で説明する例外があります)。とは言っても、クリックされたボタンだけがフォームデータとともに送信されるので、名前を付ければその存在を確認し、該当するサーブレットを呼び出すことができます。
HTML5 はformaction
送信ボタンの属性を定義します。これにより、クリックされたボタンに応じて異なるターゲットに送信できます。ただし、これはすべてのブラウザーでサポートされているわけではない新機能であり、古いバージョンを使用している場合に問題が発生する可能性があります。
理想的には、フォームのaction
属性を、クリックされたボタンをどう処理するかを決定するスクリプトにしformaction
て、送信ボタンに属性を追加して、フォームを関連ファイルに直接誘導する必要があります。