• ベストアンサー

1つのフォーム内容を1つのsubmitで複数ページに同時送信

tomcat5.0+mysql5.1+jsp+html まったく同じフォーム内容を2つのページに送信しようとしています。 center.jsp内にあるひとつのsubmitボタンを押して、同時に2つのページでデータを受け取りたいのです。 どなたかわかるかたいらっしゃいますでしょうか? center.jsp → rightA.jsp       → leftB.jsp フレーム分割しているので、イメージ的には下記のような感じです。 action='rightA.jsp' method='post' target='rightA' action='leftB.jsp' method='post' target='leftB' ※javascriptで可能だと知り合いから聞いたのでいろいろ調べてみましたが…  いまいちjavascriptが理解できないでいます。 <script language="JavaScript"> <!-- function sendForm() { formElem.method = "post"; formElem.action = "rightA.jsp"; formElem.target = "rightA";                formElem.action = "leftB.jsp"; formElem.target = "leftB";  ~ } // --> </script> <form name='form' action='' onsubmit='retrun sendForm()'> ~           

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

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

まず前提として、1つのページから2以上のページに飛ぶことは 一意性が失われるため、お勧めできません。 特にtargetを指定してページを開くことは非推奨のはずです。 それでもどうしてもというのであれば以下のように・・・ formElem.action = "rightA.jsp"; formElem.target = "rightA"; formElem.submit();           formElem.action = "leftB.jsp"; formElem.target = "leftB"; formElem.submit();           return false; と、actionとtargetを指定した後にsubmitしてやり、最後にfalseを 返してやるとよいでしょう。(onsubmitにfalseが返るため)

piyotarosu
質問者

お礼

yambejp様、ありがとうございます。 auty様のアドバイスとあわせて、下記で動かすことができました。 <script language="JavaScript"> <!-- function sendForm() { var formElem = document.forms["form"]; formElem.action = "rightA.jsp"; formElem.target = "rightA"; formElem.method = "post"; formElem.submit(); formElem.action = "leftB.jsp"; formElem.target = "leftB"; formElem.method = "post"; formElem.submit(); return false; } // --> </script> form部分 form name='form' onsubmit='return sendForm()' 推奨されてないやり方のようですが、 動かすことができてホッとしています。 それぞれデータベースに接続して、任意のデータの取り出しに成功です。 javascript以外で別のやり方があるのでしょうかね? いろいろ調べて勉強したいと思います。 どうもありがとうございました。

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

・ もしかしたら解決済みかもしれませんが、formElemのつながりがはっきりしていないかも知れません。もしそうならformElemを次のように定義する必要があります。 name='form'という名前が付いているので、関数sendForm() の先頭に、例えば次の1行を追加します。 function sendForm() { var formElem = document.forms["form"]; formElem.method = "post";

piyotarosu
質問者

お礼

auty様、ありがとうございます。 yambejp様のアドバイスとあわせて、動かすことができました。 今までjavascriptは重要視していなかったのですが、 やはりいろいろな面で使うことがありそうです。 がんばって勉強していきたいと思います。 どうもありがとうございました。

関連するQ&A

  • submit時に違うページに飛びたい

    アンケートに答えて頂いた方がsubmitを押すと、 ありがとうメッセージのページに飛ぶということがやりたいのです。 尚、メール送信に問題はないのですがページが移動しない状況です。 どなたか、私の間違いを教えていただけますか? <script language="JavaScript"> <!-- function move(url){ window.location=a.html; } --></script> <form action="mailto:info@○○.co.jp" method="post" enctype="text/plain" name="form1" onSubmit="javascript:move()"> </form> と打ちまして、その後 function move(){ window.location("a.html"); } と変えてもダメでした。 これがだめなら「ありがとう」とアラートと出して置いて、このページろリロードする方法でも良いです。 どなたか教えていただけますか? 宜しくお願い致します!!!

  • Chromeで複数submit

    現在1つのボタンで2つのフォームをsubmitしているのですがGoogleChromeだけ1正常に動作せず困っております。 下記スクリプトでIE、FireFoxはnform、nform2ともにsubmitされるのですがChromeのみnform2(後に記述したほう)のみ実行されます。 解決方法はありますでしょうか? 宜しくお願い致します。 <script language="javascript"><!-- function send() { if(window.confirm('設定してよろしいですか?')){ document.nform.submit(); document.nform2.submit(); }else{   alert('キャンセルしました'); } } //--></script> <form name="nform" action="a.php" target="blank" method="POST"> <input type="hidden" value="a" name="1"> </form> <form name="nform2" action="b.php" method="POST"> <input type="hidden" value="a" name="1"> </form> <button onClick="send()">ボタン</button>

  • フォームの送信ボタンが押されたときの処理について

    (1).phpファイルにおいて、下記のようなフォームを作成したときに、 JavaScriptの、onSubmitイベントで、PHPの$pushsubumit 変数に 1を代入したいのですが、echo()した結果、代入されていません。 やはり、JavaScriptの文のなかでPHPスクリプトは通用しないのでしょうか? どのようにすれば、送信ボタンを押したという、PHPの$pushsubmitフラグを 1にできるのでしょうか。 (2)ちなみに、JavaScriptのテキストでは、return 1; という表現を用いていますが、 この戻り値はどこでどうやって受けるのでしょうか。 (3)例えば、onSubmit="var pushsubmit; pushsubmit=1;"などと書いたとして、 このpushsubmit=1をPHPスクリプト側でどうやって受ければいいのかがわかりません。 どうぞよろしくお願いします。 --------------------------------------------------------------------------- (1)<form name="form1" method="post" action="bbs.php" onSubmit="showdlgbox(); <?php $pushsubmit=1 ?>"> <?php ~ ?> (2)<form name="form1" method="post" action="bbs.php" onSubmit="showdlgbox(); return 1;">

    • ベストアンサー
    • PHP
  • submitした後にiframeのページを戻す

    フォームからデータを送った後に前にページに戻したいのですが、何方かご教授して頂けないでしょうか? <FORM method="POST" action="http://www.xxx/get.cgi" target="iframe_2"><INPUT type="button" value="送信" onclick="submit();javascript:parent.iframe2.history.go(-1);"></FORM>

  • Netscape で submit() を複数起動できない

    以前に教わった方法で、submit() を使って別ウィンドウに結果を表示させる Javascript を書きました。 IE では、できたのですが、NN(Netscape Communicator 4.7) では以下の Javascript が起動しません。 というか、最後の form3.submit() のみ起動します。submit() の間に alert(); を入れておくと 3 つのウィンドウが開くので、動くことは 動いているようなのですが...。なぜでしょう? --------ここから(ソースの一部) ---------- <SCRIPT LANGUAGE="JavaScript"> <!-- function OpenWin(){ document.form1.submit(); document.form2.submit(); document.form3.submit(); } // --> </SCRIPT> <form name="PapyrusForm" method="POST" action=""> <input type="text" name="searchword" size="60" maxlength="256"><BR> <input type="button" name="Search" value=" 検索 " onClick="OpenWin()"> </FORM> <!-- =========================================== --> <FORM ACTION="/cgi-bin/searchlist1.pl" target="window1" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form1"> </FORM> <FORM ACTION="/cgi-bin/searchlist2.pl" target="window2" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form2"> </FORM> <FORM ACTION="/cgi-bin/searchlist3.pl" target="window3" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" NAME="form3"> </FORM>

  • 違うフレームにあるフォームをsubmit(送信)

    JavaScriptかPHPかでも質問なのですが、Mainフレームには送信ボタンはありませんし、出来ない(しない)ものとします。 かわりにSubフレームが読み込まれたときにJavascriptでMainフレームのMainFormフォームをSubmitさせるような記述は出来ますでしょうか? その後PHPの変数でデータを操作しようと思っているのですが、PHPでデータを受け取れません。 要は、Javascriptを使わなくてもいいのですが、PHPで他のフレームにあるフォーム内のデータを受け取りたいのです。 どなたか助けてください。 ★★★★★★★★★Mainフレーム★★★★★★★★★ <form name="MainForm" action="Sub.php" target="Sub" method="post"> <input name="ABC" type="text"> </form> ★★★★★★★★★Subフレーム★★★★★★★★★★ -----JavaScript部------- parent.Main.document.MainForm.submit(); -----PHP部------- <?php extract($_POST); global $ABC; echo $ABC; ?>

    • ベストアンサー
    • PHP
  • 送信フォームからjspページに値を飛ばしたい

    jspページでhtml,javaScriptを用いてフォームの入力制限を行い、FMenu.jspという、jspページにフォームの値を送信したいのですが、うまくいきません。どなたか教えてください。 Form.jspファイル(中略) <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>フォーム入力画面</title></head> <body><center> <script type="text/javascript"> <!-- function checkForm(){ var a,b; NCheck(); if(a==true){ WCount(); } ACheck(); if(b==true){ WCount(); document.FM[0].submit(); document.FM[1].submit(); } } (中略) //--></script> <form action="Menu.jsp" method="POST" name="FM"> ID<input type="text" name="ID" size="20" maxlength="4"><br> パスワード<input type="text" name="PASS" size="20" maxlength="4"> <input type="button" value="OK" onClick="return checkForm();"> (中略)

  • 【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit

    【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit)の扱いについて どのカテゴリで質問しようか迷いましたがこちらで・・・。 今回は画像を使用して質問します。 今回はHTML(PHP使用)に関しての質問なのですが、 図にあるように、※1をクリックすると、その次のページにA,Bの情報がPOSTで次のページに送信されるようにしています。 ここで、※2にも同じように、A,Bの情報をPOSTで次のページに送信したいのですが、 何故かPOSTで送信されないみたいなのです。 どうにかして※2も※1と同じようにPOSTを送信したいのです。 別の質問サイトで、「押されたsubmitがどれかによって処理を分岐させる」と回答が帰ってきたのですが、javascript無しのPHPだけで以上のことができるのでしょうか? なお、HTMLのFORMタグは入れ子にしていませんし、 POST受け取り先の.phpも問題はありません。 以下、HTMLのform、input部分のソース ※1のフォームタグ内容 <form action="search.php" method="post" name ="search"> ※1ボタンの内容 <input type="submit" name="searching" value="再検索"> ※2のフォームタグ内容 <form action="result.php" method="post" name ="res"> ※2ボタンの内容 <input type="submit" name="result" value="結果表示"> まとめとして、 押されたsubmitがどれかによって処理を分岐させる方法を、 javascriptではなく、PHPのみで実装させたいのです。 どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • 同一ページの複数のフォーム通信

    お世話になります。 <form method='POST' action='#1'> <input name='text1'> <input name='text2'> <form method='POST' action='#2'> <input name='text3'> <input method='submit' value='B'> </form> <input method='submit' value='A'> </form> Aにて text1,2,3を#1へ送信 Bにて text3を#2へ送信 したいのですが、上手くできません。 <form></form>で囲まれている中に 更に<form></form>する事はできないのでしょうか? 代替案はありますか?? よろしくお願いします。

  • 改めて・一つのページに複数のフォームメール

    具体性に欠いて、お答えにくかった質問を取り下げ、改めて質問させていただきます。 一つのページにメールフォームのcgiを2つ、組み込んでいます。 ------------------------- <FORM method="post" action="formmailer-theme.cgi"> <CENTER><input type="text" name="coment2" size="15"><input type="submit" value="送信"><input type="reset" value="リセット"> </CENTER> </FORM> ・ ・ ・ <FORM method="post" action="formmailer.cgi"> <CENTER><input type="text" name="coment" size="15"><input type="submit" value="送信"><input type="reset" value="リセット"> </CENTER> </FORM> ----------------------------------- 原文をコピーしました。 上のフォームでは正常に送信できるのですが、下のフォームではなぜか上で使われている「formmailer-theme.cgi」を呼び出し、必須と設定している"coment2"の入力を求めるエラーが返ってきます。 それぞれをformで囲っているのですが… 間違いありますでしょうか? また、不足している質問内容はありますでしょうか?

    • ベストアンサー
    • CGI

専門家に質問してみよう