submitボタンで他のフレームを更新する方法

このQ&Aのポイント
  • submitボタンで他のフレームを更新する方法が分かりません。
  • A.phpのフォーム内のsubmitボタンクリックのタイミングでA.phpはC.phpに遷移するが、同時にB.phpもD.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に遷移させたいです。 方法をご存知のかたがいましたら教えてください。宜しくお願い致します。

  • ken2r
  • お礼率88% (82/93)

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

  • ベストアンサー
回答No.2

ページ移動はlocation.hrefです。 <form action="C.php" target="AAA" onsubmit="top.BBB.location.href='D.php';">

ken2r
質問者

お礼

location.hrefで望みどおりできました。 有難うございました。

その他の回答 (1)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

<frameset>があるhtml(又はPHP)はC.PHPと同じドメインですよね。 だったら、 C.PHPのjavascriptで自身のonloadのイベントで、親ページをチェックして、 BBBのsrc属性を書き換えてやればよいかと、思います。 C.PHPから見た親(window)は、window.parent で参照できます。 if(window.parent.location.href == "hoge"){ for (var i = 0; i < window.parent.frames.length; i++) { if(window.parent.frames[i].name="BBB") window.parent.frames[i].src="D.php"; } }

ken2r
質問者

お礼

ご回答有難うございました。 location.hrefで望みどおりできました。

ken2r
質問者

補足

ご回答有難うございました。 説明不足でした。 C.phpの処理時間が長いため、別フレームでD.phpを表示して進行状態を表示しようとしています。 教えて頂いたようものを真似てに以下の関数を作成したのち ////////////////////////////////////////////////////////// function Refresh() { for (var i = 0; i < window.parent.frames.length; i++) { if(window.parent.frames[i].name == "BBB") { window.parent.frames[i].src = "D.php"; } } return true; } ////////////////////////////////////////////////////////// C.phpに <body onload="return Refresh();"> を追加したり A.phpに <input type="submit" value="Start" onclick="return Refresh();">  を追加したのですが B.phpがD.phpに更新されません。 また、src属性の更新前の中身をalertでデバッグするとundefineとなっていました。 何かお気づきの点などありましたら教えてください。宜しくお願い致します。

関連するQ&A

  • ボタンを用いたフレームのリンクについて

    フレームで右と左に分割していて左のフレームで数字を入力して計算と書かれたボタンを押すと右のフレームに計算結果を表示する方法がわかりません。 具体的なソースとしては まず、フレーム分割部分は <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
  • フレームを介したrefferの取得方法

    C.htmlにてリファラを取得したいのですが、 document.refferでは、B.htmlのURLが取得されてしまいます。 A.htmlを取得したい場合、B.htmlでリファラを取得し、C.htmlへ引継ぐことで 可能でしょうか。 また、どのような方法となるのでしょうか。 ご教授下さいませ。 リンク元:A.html フレーム:B.html フレーム内:C.html D.html <html> <frameset cols="100,*"> <frame src="C.html" name="C"> <frame src="D.html" name="D"> </frameset> <noframes> このページはフレームを使用しています。 </noframes> </frameset> </html>

  • フレームについて

    今までフレーム機能の表示で携帯とPCに分けていましたが、最近はうまく表示できません。 <frameset cols="190,*" frameborder=0 border=0> <frame src="content.html" name="hidari"> <frame name="migi" src="index.php"> <noframes> <A HREF="index.php">PCの方はこちらへ</A><BR><BR> <A HREF="Mobility/index.php">携帯の方はこちらへ</A> </noframes> </frameset> 現状はこんな感じです。 何処が悪いのでしょうか? 何か携帯とPCを簡単に分ける方法はありませんか?

    • ベストアンサー
    • HTML
  • フレームページでの更新(F5)について

    通常、フレームを使用したページ(「framepage.html」とします) で更新(F5)を押すと、 元々フレーム内に表示されているものに戻ってしまいますよね? 例を使って説明しますと、 「framepage.html」のソースが <HTML> <HEAD> <title>タイトル</title> </head> <FRAMESET ROWS="100,*"> <FRAME SRC="frame1.html" NAME="frame1"> <FRAMESET COLS="100,*"> <FRAME SRC="frame2.html" NAME="frame2"> <FRAME SRC="frame3.html" NAME="frame3"> </FRAMESET> </FRAMESET> </html> だとします。 ここで、「frame2.html」内からのリンクで「frame3」に「frame4.html」が表示されています。 この状態で更新(F5)を押すと、「frame3」には「frame4.html」ではなく「frame3.html」が表示されている状態となりますよね? しかし、http://server2.petat.com/users/l-1031/pict-file/aqua-gallery.htmlのサイト様では、 更新(F5)を押しても元々フレームにリンクしている「frame3.html」に変わらず、他のリンクによって表示された「frame4.html」が表示されているままとなります。 このようにするにはどうすれば良いのでしょうか? 知ってる方居られましたら、ぜひ教えてください。

  • 2つのボタンによるSubmitについて

    javascript初心者です。 <form name="sample01" action="aaa.html" method="POST" >  <input type="checkbox" name="chk[]" value="1">  <input type="checkbox" name="chk[]" value="2">  <input type="checkbox" name="chk[]" value="3"> </form> このチェックボックスの値を、submitで渡したいのですが、 AボタンとBボタンの2つ設けて、それぞれクリックすると別ファイルに遷移させたいのです。 Aボタンは、「sample01」のaction属性にあるaaa.html Bボタンは、bbb.html こういったことはできるのでしょうか?

  • HPのフレーム

    境界線の色を変えて、細くしたいのですが、 色は変えられたのですが、細くすることができません。 今フレームを呼び出す?ために 『<FRAMESET rows="100,*"> <FRAME src="frame-ue.htm" name="ue">        <FRAMESET cols="100,*"> <FRAME src="frame-hidari.htm" name="hidari"> <FRAME src="frame-main.htm" name="main"> </FRAMESET> <NOFRAMES> <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P>』 としていて、色を変えるのに、 『<FRAMESET rows="15%,85%" BORDERCOLOR="RED"> <FRAME SRC="frame-ue.htm" NAME="ue"> <FRAMESET COLS="15%,85%" BORDERCOLOR="RED"> <FRAME SRC="frame-hidari.htm" NAME="hidari"> <FRAME SRC="frame-main.htm" NAME="main">』 こうしています。 どうすれば細くできますか? もう1つこうゆうタグを使えばいいのでしょうか? わかる方、よろしえれば教えてください。

  • フレームの境界線

    ホームページでフレームのページを作りました。 フレームの境界線を消したくて、 <frameset cols="150,*" frameborder=0> <frame src="menu1.html" name="menu"> <frame src="top.html" name="main"> </frameset> としても、背景が紫(#CC99FF)なので 白い境目が出来てしまいます。 宜しければ、境目を見えなくする方法を教えて下さい。

    • ベストアンサー
    • HTML
  • フレーム3つに同時更新する方法について

    以下のように、A.ASP内のAタグを選択すると B.ASP と C.ASP に表示されている内容を変更したい。 A.ASP内のAタグ B.ASP?k=9 C.ASP?k=9 のように値を渡してデータを表示したいです。 以下サンプルです。 Main.ASP の内容------- <FRAMESET ROWS="80,*" BORDER="0"> <FRAME SRC="Top.asp?ID=1" NAME="Frame1"> <FRAMESET COLS="120,*,200" BORDER="0"> <FRAME SRC="A.ASP?K1=<%= sK1 %> NAME="Frame2"> <FRAME SRC="B.ASP?K1=<%= sK1 %> NAME="Frame3"> <FRAME SRC="C.ASP?K1=<%= sK1 %> NAME="Frame4"> </FRAMESET> A.asp の内容---- sK = Request.QueryString("K1") <script type="text/javascript"> <!-- function func(strPara) { top.Frame3.location = "B.ASP?K1=" && strPara; top.Frame4.location = "C.ASP?K1=" && strPara; } // --> </script> データデース読み込み <tr><TD> <A HREF="#" onclick="return func('<%=Trim(Server.HTMLEncode(rs.Fields("ID").Value))%>')"></A> </TD></tr> B.ASP の内容 C.ASP の内容も A.ASPと同様ですが 表示する内容のみを変更したいのです よろしくお願い致します

  • フレームの固定について

    HTMLのフレームを作りましたが、フレームが固定されません。 固定するタグのようなものはありますか? 私が作ったフレームのタグです。 <FRAMESET cols=220,*> <FRAME src="A.html" neme="fram1"> <FRAME src="B.html" neme="fram2"> </FRAMESET>

    • ベストアンサー
    • HTML
  • フレームについて

    HPを2つのフレームを使って作成したのですが、 1つはメニューの左フレームで、もうひとつはそれを表示する右フレームです。 <FRAMESET COLS="1*,4*"> <FRAME SRC="left.html" NAME="left"> <FRAME SRC="right.html" NAME="raight"> </FRAMESET> 例えば、メニューの左フレームの中から日記という項目をクリックすると、 右フレームに日記の内容が表示するようになっております。 そこで、右フレームに日記が表示されているときに更新をすると、 右フレームがトップに戻ってしまいます。 全部そうなってしまいます。 更新をしても、その時表示していたものを、 表示させておくにはどうすればいいのでしょうか? 宜しくお願いします。

専門家に質問してみよう