- ベストアンサー
フォームで送信ボタンと戻るボタンを2つつけてそれぞれ遷移先を変える方法は?
- b.phpにおいて、登録ボタンと戻るボタンを2つつけて、それぞれ遷移先を変える方法を教えてください。
- JavaScriptを使用することで、フォームの送信先を動的に変更することができます。
- 以下のサンプルコードを参考にしてみてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
はじめまして。 <INPUT type="submit" name="submit" value="登録" onClick="form.action='c.php';return true"> <INPUT type="submit" name="submit" value="戻る" onClick="form.action='a.php';return true"> でいいと思います。(実際、このコードで使っています) 値を渡すには、FORM内にhiddenで、値を設定しておいて、methodをPOSTに設定しておけば、渡せます。
その他の回答 (4)
あ、補足を見ていませんでした。失礼。 FORMを2書きたくないなら、GETでしか渡せませんが、以下のように書けばいいかと。 #本当はPOSTで渡した方が良いんですが。 <FORM method="POST" action="c.php"> <INPUT type="submit" name="submit" value="登録"> <INPUT type="button" value="戻る" onclick="javascript:location.href='a.php?引数名=値';"> </FORM> で動くと思いますが。 動かない場合はスペルミスとか、若干文法が間違っているとかですので、調べて試行錯誤してみてください。 その試行錯誤が次につながります。
Javascriptを使っても良い訳ですよね? ならば、以下のようにすれば良いと思います。 <FORM method="POST" action="c.php"> <INPUT type="submit" name="submit" value="登録"> <INPUT type="button" value="戻る" onclick="javascript:document.forms[1].submit();"> </FORM> <FORM method="POST" action="a.php"> </FORM> こんな感じです。 document.forms[1] の部分というのは2番目のFORM要素を示します。 配列なので、要素数より1小さい数字が[]の間に張ります。 または、 document.forms["back"] などと名前を指定できます。 その場合は、2番目のFORM要素にname属性を追加します。 <FORM method="POST" name="back" action="a.php"> って感じです。
- gentaro
- ベストアンサー率47% (105/221)
あらら、戻るときに値を渡すのですか・・ ということはもう一度a.phpを呼べばいいのですよね? <FORM method="POST" action="c.php"> <INPUT type="submit" name="submit" value="登録"> </FORM> <FORM method="POST" action="a.php"> <INPUT TYPE=HIDDEN NAME=なんちゃら VALUE=かんちゃら> <INPUT type="submit" value="戻る"> </FORM> では?他に何かやらなければダメなことがあるのなら、補足いただければなんとか。
- gentaro
- ベストアンサー率47% (105/221)
<FORM method="POST" action="c.php"> <INPUT type="submit" name="submit" value="登録"> </FORM> <FORM> <INPUT type="button" value="戻る" onclick="history.back()"> </FORM> とFORMを分ければうまくいくと思いますど?
補足
ご回答ありがとうございます。 POST送信か、GET送信で、ある値を前ページに渡したいんです。単純に前ページに戻るだけではなく hiddenでも何でもいいんですが、値を渡す必要があるので history.back()では無理そうなんです・・・
補足
度々すみません・・・ FORMを2回書く方法はなるべく避けたいと思うのですが 他に何か方法はないでしょうか・・・?