- ベストアンサー
押下ボタンによってSubmit先を変えたい
いつもお世話になってます aaa.aspにQボタン(Submit)、Zボタンbutton、と FORMがあります。 Qボタンを押された時はbbb.aspにSubmitしたい、 Zボタンを押された時はccc.aspにSubmitしたい、 だがしかしFormのActionにはSubmit先が一つしか書けないですよね。 どちらのASPにもFormの内容を送りたいのです。 このような処理は可能なのでしょうか? 教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
JavaScriptでどうこうする方法もありますが、 クライアント側の環境によって左右されるので、 クライアント側の環境に影響しない方法を紹介しますね。 <!-- aaa.asp --> <form action="aaa2.asp" method="post"> <input type="hidden" name="field" value="test"> <input type="submit" name="btnQ" value="Q"> <input type="submit" name="btnZ" value="Z"> </form> <!-- aaa2.asp --> <% If Len(Request.Form("btnQ")) > 0 Then Server.Transfer "bbb.asp Else Server.Transfer "ccc.asp" End If %> ※あとは bbb.asp と ccc.asp をそれぞれ用意しておく Server.Transferを使用している都合でASP3.0以上(IIS5以上)じゃないと動作しませんが、条件を満たしていればこんな方法で良いんじゃないかと。 参考までに
その他の回答 (3)
- itohh
- ベストアンサー率45% (210/459)
こんにちは。itohhといいます。 TransferメソッドはIIS5.0からの対応です。 それ以前のIISではエラーとなると思います。
お礼
開発環境では問題ないけど、そうですね、 どこまで考慮して開発しなければならないのか上司と要相談ですね。 アドバイスありがとうございました。
- hequil
- ベストアンサー率65% (242/372)
> あと、Transferというのは初めて聞いたのですが(勉強不足ですみません) > Redirectと同じ機能ですか? Server.Redirectと似ていますが、実際は違います。 一言で説明すると Server.Redirect が「ページ転送」に対し Server.Transfer は「制御転送」になります。 制御を移すだけですので、処理も高速ですし セッション情報や Request.Form変数などもそのまま転送先のASPへ引き渡します。 (詳しいことは参考URLをご覧になって下さい) 逆に Server.Redirectより高速なのだからといって、同じように使用しても良いのですが、考えて使わないと痛い目にあいます(謎) あと、Server.Transferはその性質上、別サーバーのURLは指定できません(制御を移せないので) ま、説明するよりも実際に使って頂くとわかると思います。 参考までに
お礼
下のソースも含め、分かりやすい説明ありがとうございました。 勉強になりました。 そうですね、調子に乗って闇雲に使わないように気をつけます。 URLも教えて頂いて、ありがとうございました。
- mann555
- ベストアンサー率46% (29/62)
単純に下記のようにすればHTMLだけでも出来ます <FORM ACTION="bbb.asp" METHOD="POST"> <INPUT TYPE="SUBMIT" VALIE="Q"> </FORM> <FORM ACTION="ccc.asp" METHOD="POST"> <INPUT TYPE="SUBMIT" VALIE="Z"> </FORM>
補足
回答ありがとうございます。 でもFormは一つなんです。 ここが悩ましいところなんですよね。
補足
hequilさん、ありがとうございます! これでやりたいことが出来ます。 解決しました。 あと、Transferというのは初めて聞いたのですが(勉強不足ですみません) Redirectと同じ機能ですか? もしよければ、これも教えて頂きたいのですが。 すみませんよろしくお願いします。