フォームタグの各送信ボタンでリクエストパラメータを分けたい

とりあえず、思いつく限り。

  1. HTMLの仕様を無視して、各送信ボタンをフォームタグで括る。*1
  2. 送信ボタン自体のname属性とvalue属性を利用する。
  3. JavaScriptを使う。

2.のパターンは以下の通り。

  1. 送信ボタンのvalue属性(「送信」とか「戻る」とか)で判定。
  2. 送信ボタンのname属性で判定。(「送信」のname属性は「send」、「戻る」のname属性は「ret」とか)
  3. 送信ボタンのname属性を拡張。*2

3.の拡張は以下のような感じ。


<input type="submit" name="foo=bar"...

送信ボタンを使うパターンの場合、二重送信対策で送信時にボタンをdisableすると、ボタンのパラメータが送信されなくなってしまうので、注意のこと。

*1:フォームタグが入れ子になっていたり、交差してたりするとうまくいかない

*2:仕様に沿っているのかは不明