• ベストアンサー

一つのフォームでボタンにより別々のactionを実行するには

GETでもPOSTで構いませんが、通常フォームの基本は、 ---- <form method="post" action="CGIのURI"> ..(input要素) <input type="submit" value="送信" /> </form> ---- となっていまして、「送信」ボタンを押すとCGIに送信されるようになっています。 この送信ボタンを「送信1」「送信2」とし、それぞれ送信されるCGIが別々なURLに送信したいと思っています。 つまりinput要素で入力しているフィールドを共通化して使いたいと思っています。 このような方法ってできるのでしょうか?どなたかご存知であればご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.3

JavaScriptを使ってこんな感じでどうでしょうか ※もっとスマートなやり方もあるかも知れませんがとりあえず出来ると言うことで… <html><body> <script type="text/javascript"> <!-- function func(x) { if(x==1){ document.F1.action="cgi1.cgi"; } if(x==2){ document.F1.action="cgi2.cgi"; } document.F1.submit(); } // --> </script> <form name="F1" action="#"> <input type="text" name="T1" value="100"> <input type="button" value="cgi1" onclick="func(1)"> <input type="button" value="cgi2" onclick="func(2)"> </form> </body></html>

goroneko-begin
質問者

お礼

具体例を示していただいてありがとうございます。とても参考になりました。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

script を使えば、action を切り換えることでできると思います。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

言うまでもありませんが原則的には1フォームにつき submitは1つのみ有効でactionは1つ限り有効です。 どうしてもという場合は以下のいずれか 1.submitをbuttonに変えて、javascriptでactionを書きかえる 2.送信先を一つにして、送られてくるデータをもとに 送信先のページで割り振りをおこなう。 現実的には2の方が汎用性が高くてよいとおもいます。

goroneko-begin
質問者

お礼

ご返答ありがとうございます。1フォームにつきsubmitはやはり1つのみですか。javascriptを使えばいいみたいですね。

関連するQ&A