左右に分かれたフレーム間での値の受け渡し

このQ&Aのポイント
  • 左右に分かれているフレーム間での値の受け渡しについて、Javascriptを使用して値を受け渡す方法について教えてください。
  • 左右に分かれたフレーム(右側のフレーム)でボタンを押すと、左側のフォームにフラグ値をセットしてsubmitしたいです。
  • ソースコードの一部が省略されていて、左側のフォームにフラグ値をセットしてsubmitする具体的な方法が分からないので、詳しい方に教えていただきたいです。
回答を見る
  • ベストアンサー

左右に分かれているフレーム間での値の受け渡し

こんにちは、はじめまして。 左右に分かれているフレーム(右にあるフレームを押下すると、左側のフォーム内の処理が走り、その結果(フラグなど)をサーバに送りたいです。 ソースは以下のようになっています。Javascriptで値の受け渡しをしたいのですが、どのようにすればsubmitができるかわかりません。どなたがご存知の方、よろしくお願いします。 ↓以下ソース↓ ~右側~ <form action="menu.php" method="post" name="form_menu"> <input type="button" value="test" onClick="push();">      省略 </form> <script language="javascript"> function push() {  --ここが分かりません-- ここで左側のフォームに送るフラグ値をセットして  それを左側のフォームにsubmitしたいです。 } </script> ~左側~ <form action="input.php" method="post" name="form_input">      省略 </form> ~フレーム~ <FRAMESET cols="80%,20%" frameborder="0"> <FRAME SRC="input.php" name="frame_input"> <FRAME SRC="menu.php" name="frame_menu"> </FRAMESET>

  • PHP
  • 回答数1
  • ありがとう数1

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

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

ウィンドウ名とフォーム名を同一にするのは間違いの元なので やめた方がいいとおもいますよ。(frm_input) フォーム間のアクセスは、相対位置を追っかければいいでしょう この場合だと、parentのfrm_inputウィンドオブジェクトに 対して、frm_inputフォームをサブミットできます。 //右側のhtmlに記載する <input type="button" value="左側をサブミット" onClick="parent.frm_input.document.forms['frm_input'].submit()">

riki_mspc
質問者

お礼

yambejp様 できました!!! javascript内を以下のように書いたらフラグが渡せました。 <script language="javascript"> function push() { var Str_test; //入力項目のクリア document.form_menu.test.value = "1"; Str_test = document.form_menu.test.value; parent.frame_input.document.form_input.test.value = "1"; parent.frame_input.document.form_input.submit(); } </script> かなり助かりました。 本当にありがとうございます!!

riki_mspc
質問者

補足

ありがとうございます。 投稿したあとにフォーム名とフレーム名が同じになっているのに気づき、センターに訂正をお願いしたのですが、間に合いませんでしたm(_ _)m onClickイベントの部分は parent.左側のフレーム名.document.forms[左側のフォーム名].submit() でいいでしょうか? 現在、右側のHTMLに<input type="hidden" name="test" value="">があり、 右側のjavascript部分には function clear_click() {  document.form_menu.test.value = "1";  parent.frame_input.document.form_input.submit(); } と書いてあります。「1」を左側のフレームにsubmitするにはどうしたら よいでしょうか? ------------------------------- 左側のフレーム名 frame_input 左側のフォーム名 form_input 右側のフレーム名 frame_menu 右側のフォーム名 form_menu -------------------------------

関連するQ&A

  • frame間の値の受け渡し方法

    環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 --------------------------- frameで左右に分かれています。 「左がメニュー画面」 「右がデータを表示する画面」 --- <frame name="hidari" src="aa.php"> <frame name="migi" src="ee.php"> メニュー用のPHPに --------------------------- aa.php(左のメニュー画面) 「number」というテキストボックスに入力して、 「検索」をクリックすると、 右の画面にデータが表示されます。 <FORM name="Form1" METHOD=post target="migi"> number<INPUT TYPE=TEXT NAME=number SIZE=5> <a href="./ee.php?func=ads" target="migi"><span style="color:#DB7093">検索</style></a> --------------------------- ee.php(左のデータ画面) テキストボックス「number」の値を受け取るために echo $_POST['number']; 「number」の値が表示されません。 どのようにすれば受け取れますか?

    • ベストアンサー
    • PHP
  • PHPのデータの受け渡しとフレーム

    PHPを最近始めた者なのですが、 データの受け渡しについてわからないことがあります。 あるページのフォームで入力したデータをフレーム構造のページへ受け渡したとします。(データを入力したページをAとします) これはページAに設置されているフォームのソースです。 <form action="フレームページ.php" method="post"> <input name=(省略)> <input type='submit' value='submit'> </form> フレームページで表示されるページをB、Cとします。 目的はページAで入力したデータをページB、Cに反映させることなのですが、どうしても構造上問題があるのか反映されません。 たぶん受け渡したいデータがフレームページにいってしまい、ページBとCには届いていないと思うのですが、なんとかページB、Cに渡す方法はないでしょうか? フォームのactionをページB.phpと直接打てばデータが反映されることは確認しています。

    • ベストアンサー
    • PHP
  • フォームからフレーム内へのデータ受け渡しについて

    いつもお世話になります。 フォームからフレーム内にデータを流してもデータの反映がうまくいきません フォームのソースは下記の通りで、受け側は、3つのフレームで構成されています。 データの送り先は、3つあるフレームのひとつで<FRAME name="bottom" src="URL01.php">になります。 フレームを使わずに、フォームからURL01.phpにデータを送信するときちっと反映されます。 なぜ、フレームを使ったときは、データが反映されないのかがわかりません、ご教示をお願いいたします。 <html> <head> <title></title> <body> </head> <form method="POST" action="URL" target="bottom" name="db_login"> <table border="0"> <tbody> <tr> <td>データベース名</td> <td><input size="20" type="text" style="ime-mode:disabled" name="db_name"></td> </tr> <tr> <td colspan="2" align="center"><br> <input type="submit" value="接続"> </tr> </tbody> </table> </form> </body> </html>

    • 締切済み
    • PHP
  • 1つのformで複数のactionをボタン1つで

    質問です。 1つのformで複数のactionを1つの送信ボタンで実行したいと思っています。 やりたいことは、1つのframeから他の2つのframeにデータを渡すことです。 フレームは以下のように3つに分かれています。 <frameset cols="60%, 40%"> <frame name="test1" src="xxxx.php"> <frameset rows="50%, 50%"> <frame name="test2" src="yyyy.php"> <frame name="test3" src="zzzz.php"> </frameset> </frameset> xxxx.php内のデータをyyyy.php, zzzzphpの2つに渡したいです。 <script language="javascript"> function send(){   document.form1.target = "test2";   document.form1.action = "yyyy.php";   document.form1.submit();   document.form1.target = "test3";   document.form1.action = "zzzz.php";   document.form1.submit(); } </script> <form name ="form1" method="POST" action="yyyy.php"> <input type="hidden" name="string" value="string" > <input type="button" value="送信" onClick="send()"> </form> 現在、上記のように試したり、過去の質問【一つのformから複数のactionを実行】url:http://okwave.jp/qa/q4234502.htmlを参考にしていますがうまくいきません。 わかる方アドバイスお願い致します。

  • <input>

    お聞きしますがチャット等で<input type="submit" value="入室" name="submit">で入室できますがこれだと自分のフレーム内からはみ出してしまいます。 CGIを組まないで外部からHTMLだけでやりたいのですが無理でしょうか? ちなみに <form method="post" action="http://" name="enter"> 名前<input type="text" name="user" value="名前"> <input type="submit" value="入室" name="submit"> </form> こんな感じで、これだと <frameset rows="100,*"> <frame src="1.html" name="1"> <frame src="2.shtml" name="2"> </frameset> で、1が先程の入室画面で2を発言後の画面で3を発言画面だとします。 1から3に飛ばし、発言した言葉を2に送るようにしたいのですが1で入室画面を押すと、元の本チャットへ戻ってしまうので困ります。 後、<frameset>の中の背景等を強制的に他の色にしてみせる事はできませんでしょうか?

    • ベストアンサー
    • HTML
  • ボタンを用いたフレームのリンクについて

    フレームで右と左に分割していて左のフレームで数字を入力して計算と書かれたボタンを押すと右のフレームに計算結果を表示する方法がわかりません。 具体的なソースとしては まず、フレーム分割部分は <html> <head> <title>計算機</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <Frameset cols="25%,*" Frameborder="yes" Scrolling="auto"> <frame src="calc.html" NAME="hidari"> <frame src="calc.php" NAME="migi"> </frameset> </html> このようになっていてcalc.htmlは <html> <head> <title>calc.html</title> </head> <body> <form name="form1" action="calc.php" method="post"> <input type = "text" name = "txtA"> +  <input type = "text" name = "txtB"> = ?  <br> <input type="submit" value="計算"> </form> </body> </html> このようになっておりcalc.phpは <html> <head> <title>calc.php</title> </head> <body> <?php $a = $_POST['txtA']; $b = $_POST['txtB']; $c = $a + $b; print ($a." + ".$b." = ".$c."\n"); ?> </body> </html> このようになってます。 現在は計算ボタンを押すと左フレームにcalc.phpが表示されるのでこれを右フレームに表示させたいです。 どなたか詳しい方お願いします。

    • ベストアンサー
    • HTML
  • フォームから値の受渡し

    http://www.stackasterisk.jp/tech/php/php02_06.jsp こちらのページを参考にしてみたのですが、うまく表示されません 解決法ご存知でしょうか? 具体的には、display.php3 のページは表示されますが ソースを見ると php の部分になにも書かれてないようです display.php3 > display.php にしたり <? → <?php に変えたりしてみたのですけども 【form.html】 <html><body> <form action="display.php3" method="POST"> <input type="text" name="fName" size="30"><br> <input type="submit" value="submit"> </form> </body></html> 【display.php3】 <html><body> <? print $fName; ?> </body></html>

    • ベストアンサー
    • PHP
  • submitボタンで他のフレームを更新する方法

    submitボタンで他のフレームを更新する方法 submitボタンで他のフレームを更新する方法が分かりません。 現在、以下のようなフレーム分けされたページがあります。 <frameset cols="50%,*"> <frame name="AAA" src="A.php"> <frame name="BBB" src="B.php"> </frameset> ここで、A.php のフォーム内のsubmitボタンクリックのタイミングでA.phpは、 C.phpに遷移するのですが、同時にB.phpもD.phpに遷移させたいです。 方法をご存知のかたがいましたら教えてください。宜しくお願い致します。

  • 左右に分けたフレームのセンター表示は?

    ありがちな左にメニュー、右にコンテンツのフレームを作っていますが、 これをセットでセンターに配置して表示することが出来ず、悩んでいます。 現在はフレームの更に左右にマージン用のフレームを配置することで、 センター表示を実現させていますが、もっと簡単な方法はありませんか? <frameset cols="*,80,640,*"> <frame src="ダミーファイル" name="left" noresize> <frame src="メニューファイル" name="menu" noresize> <frame src="コンテンツファイル" name="body" noresize> <frame src="ダミーファイル" name="right" noresize> </frameset>

    • ベストアンサー
    • HTML
  • フレームへのデータ渡し

    フレームへ飛ぶまえのファイルの一部 <FORM METHOD=POST ACTION="frame.html" > <INPUT TYPE=HIDDEN NAME="RECID" VALUE="<% = rec.Fields("学籍番号") %>"> <TD BGCOLOR=#FFC0CB><font SIZE="3"><INPUT TYPE=SUBMIT VALUE="入力・変更"></TD> </FORM> 学籍番号がフレームの1つであるup.aspに渡ってselect文で使えるようにしたいのですが、どうすればよいかわかりません。初心者ですのでわかりやすく教えてください。 (frame.html) <frameset rows="30%,70%"> <frame name="up" src="up.asp"> <frame name="down" src="down.asp"> (up.asp) set rec=db.Execute("SELECT * FROM 生徒データ WHERE 学籍番号=" & Request("RECID"))