プロが教える店舗&オフィスのセキュリティ対策術

同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変えたい。

例えば、
以下のように、同じフォーム内に2つのボタンを用意し、
片方のボタンをクリックすると、現在のページ(aaa.cgi)へ戻り、
もう片方のボタンをクリックすると、別のページ(bbb.cgi)へ飛ぶようにしたい。
なお、何れのボタンもサブミットしたい。

↓(aaa.cgi)=================================

<form name="frm1" action="???" method="post">
<input name="t1" type="text">
<input name="t2" type="text">

<input name="b1" type="button" onClick="submit();">
<input name="b2" type="button" onClick="submit();">

</form>

↑(aaa.cgi)=================================

良い方法はないでしょうか。
ご存知の方、ご教授ねがいます。
よろしくお願いします。
 

A 回答 (2件)

方法は次の2つが考えられます。


(1)CGIでリダイレクトする。
  -> location
(2)JavaScriptでaction属性値を書き換える。
  -> document.fomes[].action
ただし、(2)はクライアントがJavaScriptを切っていたら機能しないです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

(1)(2)何れも、調べて検討してみます。
敬具

お礼日時:2010/07/16 06:57

こんなのとか


-----------------------------------------------------------------------
<form name="frm1" action="aaa.cgi" method="post">
<input name="t1" type="text">
<input name="t2" type="text">
</form>
<form name="frm2" action="bbb.cgi" method="post">
<input name="t1" type="text">
<input name="t2" type="text">
</form>

<input name="b1" type="button" onClick="document.frm1.submit();">
<input name="b2" type="button" onClick="document.frm2.submit();">

-----------------------------------------------------------------------
 または
-----------------------------------------------------------------------
<html>
<head>
<title>TESTページ</title>
<script language="javascript">
<!--
function fSubmit(sType){

var sCGI = 'aaa.cgi';
if(sType > 0) sCGI = 'bbb.cgi';

with(document.frm1) {
action = sCGI;
// method = 'post';
submit();
}
}
</script>
</head>
<body>

<form name="frm1" action="#" method="post">
<input name="t1" type="text"><br />
<input name="t2" type="text"><br />
</form>

<input name="b1" type="button" value="呼出1" onClick="fSubmit(0)"><br />
<input name="b2" type="button" value="呼出2" onClick="fSubmit(1)"><br />

</body>
</html>
-----------------------------------------------------------------------
こういうのでどうでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

また、詳細なコードのご提示までいただき、
大変、分かりやすいです。

初心者なもので、
onClick="document.frm1.submit();"
で別のフォームからサブミットできるのは、
初めて知りました。

こちらの方法で、うまくいきました。
ありがとうございました。

お礼日時:2010/07/16 07:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!