- ベストアンサー
一つのフォームでボタンにより別々のactionを実行するには
GETでもPOSTで構いませんが、通常フォームの基本は、 ---- <form method="post" action="CGIのURI"> ..(input要素) <input type="submit" value="送信" /> </form> ---- となっていまして、「送信」ボタンを押すとCGIに送信されるようになっています。 この送信ボタンを「送信1」「送信2」とし、それぞれ送信されるCGIが別々なURLに送信したいと思っています。 つまりinput要素で入力しているフィールドを共通化して使いたいと思っています。 このような方法ってできるのでしょうか?どなたかご存知であればご教授ください。
- みんなの回答 (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>
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
script を使えば、action を切り換えることでできると思います。
- yambejp
- ベストアンサー率51% (3827/7415)
言うまでもありませんが原則的には1フォームにつき submitは1つのみ有効でactionは1つ限り有効です。 どうしてもという場合は以下のいずれか 1.submitをbuttonに変えて、javascriptでactionを書きかえる 2.送信先を一つにして、送られてくるデータをもとに 送信先のページで割り振りをおこなう。 現実的には2の方が汎用性が高くてよいとおもいます。
お礼
ご返答ありがとうございます。1フォームにつきsubmitはやはり1つのみですか。javascriptを使えばいいみたいですね。
お礼
具体例を示していただいてありがとうございます。とても参考になりました。