• ベストアンサー

次画面への受け渡し

お世話になります。 1の画面から、2の画面へ遷移します。 1の画面でのボタン押下により、hiddenの内容を2の画面に渡し、2の画面のボタン押下で受け渡しているか確認したいのですが、やり方がわかりません。 下に試したものをのせておきます。 あと、書き方で問題があったり、こうした方がいいという注意もしてくださると助かります。 単純なJavaScriptだと思うのですが、初心者でどうしたらいいかもわかりません。助けてください。 1の画面: <HTML> <HEAD> <script language="JavaScript"> <!-- function selEvent(selID){ document.frmAct.fuseaction.value = selID; alert(selID); } --> </script> </HEAD> <BODY> <form name="frmAct" method="post" action="form_action2.html"> <INPUT TYPE="submit" VALUE="新規登録" onClick="selEvent(1);"> <INPUT TYPE="submit" VALUE="ID検索" onClick="selEvent(2);"> <INPUT TYPE="hidden" NAME="fuseaction" VALUE=""> </form> </BODY> </HTML> 2の画面: <HTML> <HEAD> <script language="JavaScript"> <!-- function kakunin(){ alert(document.frmAct.fuseaction.value); } --> </script> </HEAD> <BODY> <form name="frmkaku" method="post" action="xxx.html"> <INPUT TYPE="button" VALUE="確認" onClick="kakunin();"> </form> </BODY> </HTML>

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

  • ベストアンサー
  • b-takeda
  • ベストアンサー率33% (7/21)
回答No.2

u_kappaさんがソースの中でやろうとしていることはちょっと無理です。 なぜなら、次画面へ遷移した時点で親画面は消えちゃってるからです。 (オブジェクトがなくなってます) どうしてもjavascriptで行いたいときは、window.openで子画面を開き openerオブジェクト等を用いて指定する必要があります。 ちなみに、Prynneさんがおっしゃる"get"を用いるとこんな感じになると思います。後は"cstr"の加工次第です。 ●画面1(a.htm) <HTML> <HEAD> </HEAD> <BODY> <form name="frmAct" method="get" action="b.htm"> <INPUT TYPE="submit" VALUE="新規登録"> <INPUT TYPE="hidden" NAME="fuseaction" VALUE="abc"> </form> </BODY> </HTML> ●画面2(b.htm) <HTML> <HEAD> <script language="JavaScript"> <!-- function kakunin(){ cstr = location.search; alert(cstr); } --> </script> </HEAD> <BODY> <form name="frmkaku"> <INPUT TYPE="button" VALUE="確認" onClick="kakunin();"> </form> </BODY> </HTML>

u_kappa
質問者

お礼

回答ありがとうございます。 参考にさせていただきます。

その他の回答 (4)

  • s_doc
  • ベストアンサー率24% (93/377)
回答No.5

No.3は間違いです。 No.4を使ってください。 失礼しました。

  • s_doc
  • ベストアンサー率24% (93/377)
回答No.4

フレームを使えるブラウザ限定でよければ、 フレーム1個のウインドウの中で親フレームに変数を中継させることができますが、 使えませんか。 親ウインドウ: <HTML> <FRAMESET COLS="*,0"> <FRAME SRC="form_action1.html" NAME="main"> </FRAMESET> </HTML> 1の画面(form_action1.html): <HTML> <HEAD> <script language="JavaScript"> <!-- function selEvent(selID){ parent.fuseaction = selID; alert(selID); location.href="form_action2.html"; } // --> </script> </HEAD> <BODY> <form name="frmAct" method="post" action="DUMMY"> <INPUT TYPE="button" VALUE="新規登録" onClick="selEvent(1);"> <INPUT TYPE="button" VALUE="ID検索" onClick="selEvent(2);"> </form> </BODY> </HTML> 2の画面(form_action2.html): <HTML> <HEAD> <script language="JavaScript"> <!-- function kakunin(){ alert(parent.fuseaction); } // --> </script> </HEAD> <BODY> <form name="frmkaku" method="post" action="xxx.html"> <INPUT TYPE="button" VALUE="確認" onClick="kakunin();"> </form> </BODY> </HTML>

u_kappa
質問者

お礼

回答ありがとうございます。 まだまだ、知識不足なんだなぁと再確認させられました。 いろいろできるんですね。 ありがとうございます。

  • s_doc
  • ベストアンサー率24% (93/377)
回答No.3

フレームを使えるブラウザ限定でよければ、 フレーム1個のウインドウの中で親フレームに変数を中継させることができますが、 使えませんか。 親ウインドウ: <HTML> <FRAMESET COLS="100"> <FRAME SRC="form_action1.html" NAME="main"> </FRAMESET> </HTML> 1の画面(form_action1.html): <HTML> <HEAD> <script language="JavaScript"> <!-- function selEvent(selID){ parent.fuseaction = selID; alert(selID); location.href="form_action2.html"; } // --> </script> </HEAD> <BODY> <form name="frmAct" method="post" action="DUMMY"> <INPUT TYPE="button" VALUE="新規登録" onClick="selEvent(1);"> <INPUT TYPE="button" VALUE="ID検索" onClick="selEvent(2);"> </form> </BODY> </HTML> 2の画面(form_action2.html): <HTML> <HEAD> <script language="JavaScript"> <!-- function kakunin(){ alert(parent.fuseaction); } // --> </script> </HEAD> <BODY> <form name="frmkaku" method="post" action="xxx.html"> <INPUT TYPE="button" VALUE="確認" onClick="kakunin();"> </form> </BODY> </HTML>

noname#3345
noname#3345
回答No.1

根本的に、htmlからhtmlへはformの値は引渡しできませんので、Javascript以前の問題です。 この方法では、実現できません。 JavaScriptのみを使用して、htmlファイル間で値の引継ぎをしたいのであれば、cookieを使うか、MethodをGETにしてURL情報の中から値を切り出すかしかないと思います。

u_kappa
質問者

お礼

回答ありがとうございます。 無理なんですか。 参考になりました。ありがとうございました。

関連するQ&A

専門家に質問してみよう