ママのスキンケアのお悩みにおすすめアイテム

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に遷移させたいです。

方法をご存知のかたがいましたら教えてください。宜しくお願い致します。

A 回答 (2件)

ページ移動はlocation.hrefです。



<form action="C.php" target="AAA" onsubmit="top.BBB.location.href='D.php';">
    • good
    • 3
この回答へのお礼

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

お礼日時:2010/08/31 15:01

<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";
}
}

この回答への補足

ご回答有難うございました。

説明不足でした。
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となっていました。
何かお気づきの点などありましたら教えてください。宜しくお願い致します。

補足日時:2010/08/30 18:14
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/08/31 15:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q別フレームのページを更新させたい

質問させてください。
Windows IE6.1で試しています。


左右に分かれたフレームのページをつくり、
右ページにメニュー、左ページに掲示板を作っています。
左ページを更新したら、同時に右ページも更新させたいのですが、
それの方法がわかりません。

一応、下記の通り試してみましたが、更新しませんでした。

function autoOpen(){
window.open("menu.htm","menu");
}

左ページの更新時、
BODYを下記のとおり書き換えています。

<body onLoad="autoOpen()">

あと、
<body onload="parent.frames.menu.reload(true)">
も試してみましたが、やはりダメでした。

何卒宜しくお願いします。m(_ _)mペコリ

Aベストアンサー

まずは、始めまして^^

早速ですが、質問の内容を見る限り、条件として左右にフレームが分かれた状態で、双方からページを変更出来る事を実現したいと言うことでよろしいのでしょうか?
(プラスしてポップアップウィンドウも更新させたいのかな??)
以下の説明は、親ウィンドウは左に掲示板(bbs)、右にメニュー(menu)、ポップアップウィンドウ(popup)でもメニューを表示するとして説明させて頂きます。


初めにフレーム間の操作についてですが、質問に最後に書かれている次の文は非常に惜しいですね
parent.frames.menu.reload(true)
非常に惜しいのですが、これでは多分エラーが発生してしまうと思います。

一つ記述を忘れている為に、発生しているエラーなのですが、その記述とは、「location」です。

日本語で訳すと、parent(親)の[frames(宣言されているフレーム中)]で「menu(menuと言うフレーム)」の「location(現在位置)」を「reload(更新)」してあげるのです。

つまり、以下の文に直せば上手く行ってくれると思います。(menu=フレーム右側、このScriptは掲示板ページから実行する物とします)

parent.frames.menu.location.reload(true)

付け加えて書いておきますが、framesは記述しない以下の文でも同様の動作をしてくれます。

parent.menu.location.reload(true)


次にポップアップウィンドウから親ウィンドウ内を操作する方法ですが、今回は親ウィンドウはフレーム単位で左右に分割されていると言うことなので、ポップアップウィンドウから一部のフレームを操作するのは、少し複雑になります。
以下に最初に説明した親フレームのmenuを更新するのと同様の動作をする例を書いてみますね^^
(この例ではポップアップウィンドウから親フレームのmenuフレームを更新します)

opener.menu.location.reload(true);

これで、ポップアップウィンドウからもmenuを更新することが出来ました。

以上で解説を終わります。
参考になったか分かりませんが、ホームページ作り、頑張ってください p(^-^)q

まずは、始めまして^^

早速ですが、質問の内容を見る限り、条件として左右にフレームが分かれた状態で、双方からページを変更出来る事を実現したいと言うことでよろしいのでしょうか?
(プラスしてポップアップウィンドウも更新させたいのかな??)
以下の説明は、親ウィンドウは左に掲示板(bbs)、右にメニュー(menu)、ポップアップウィンドウ(popup)でもメニューを表示するとして説明させて頂きます。


初めにフレーム間の操作についてですが、質問に最後に書かれている次の文は非常に惜しいですね
...続きを読む

Qフレームで指定している送信先にPOSTで値を送ることは可能でしょうか?

<frameset rows="120, *,">
   <frame src="page1.html" name="frm1">
   <frame src="POSTで値を送信" name="frm2">
</frameset>

という感じで、フレームの1つに値を渡したいと思っています。
データ量が多いためGETでは渡せず困っています。
フレームで指定した先に、POSTで値を渡すことは可能でしょうか?

よろしくお願いします。

Aベストアンサー

一応確認なんですが、1つのページにフレームが2つ(frm1とfrm2)があって、frm1のフォームの中身をfrm2のcgiへ渡す、ということでよろしいんですよね?

それでしたら、
<frameset rows="120, *">
<frame src="page1.html" name="frm1">
<frame src="blank.html" name="frm2">
</frameset>
としておいて(blank.htmlは何でもOK)、page1.htmlの中でフォームを用意し、
<form action="hoge.cgi" method="post" target="frm2">
とすると、frm2の中にhoge.cgiが読み込まれるというようになります。

Qiframe内のformをサブミットする方法について

標題の件について、いろいろ試しているのですが、iframe内のフォームをサブミットできません。わかる方いましたら教えていただけないでしょうか。以下に試しているソースを記述します。宜しくお願い致します。

○ボタン押下時、ifrのform1をサブミットさせる。

<body>
<iframe name="ifr" id="ifr" style="display:none">
<form id="form1" name="form1" id="form1" method="post" action="http://192.168...">
</form>
</iframe>
<input type="button" onclick="parent.ifr.form1.submit; " value="送信"/>
</body>

Aベストアンサー

こんにちは

???
この記述だと<iframe>内には何も入っていないですよ?
やるのであればこんな感じ?

<script language="javascript"><!--
window.onload=function() {
ifr.document.open();
ifr.document.write("<html><body>");
ifr.document.write("<form id='form1' name='form1' id='form1' method='post' action='http://192.168...' target='_top'>");
ifr.document.write("</form>");
ifr.document.write("</body></html>");
ifr.document.close();
}
//--></script>


<iframe name="ifr" id="ifr" style="display:none"></iframe>
<input type="button" onclick="parent.ifr.form1.submit(); " value="送信"/>

こんにちは

???
この記述だと<iframe>内には何も入っていないですよ?
やるのであればこんな感じ?

<script language="javascript"><!--
window.onload=function() {
ifr.document.open();
ifr.document.write("<html><body>");
ifr.document.write("<form id='form1' name='form1' id='form1' method='post' action='http://192.168...' target='_top'>");
ifr.document.write("</form>");
ifr.document.write("</body></html>");
ifr.document.close();
}
//--></script>


<iframe name...続きを読む

Qフレームの片方だけを更新(リロード)させる方法を教えて下さい

ちょっとややこしいんですが...
<frame src="side_1.html" name="left">
<frame src="side_2.html" name="right">
<noframes>

そこから[side_1.html]でリンクされている[bbs.html]に移動して
その右フレームにある[bbs.html]を更新したいんですが...
更新をすると[side_2.html]になってしまうんですが
それを更新しても[bbs.html]で表示したいんです。

なにかいい方法はありますか?

Aベストアンサー

こんにちは。
window.locationのJavaスクリプトを使用するという方法でも良いのなら、
なんとかなるかもです。
参考URLの先に書いてあるほうを読まれてみてください。

後は、参考URLの後のほうのサイトにあるサンプルを
もじって、bbs.htmlの<head>~</head>区間に、

<SCRIPT Language="JavaScript">
<!--
function rld()
{
location.reload();
}
// -->
</SCRIPT>

…と入れてみては……ダメでしょうか(自信なし/汗)。

参考URL:http://wakusei.cplaza.ne.jp/twn/js/location.htm,http://www.shiojiri.ne.jp/~openspc/JavaScript/lib_/

Q親ウィンドウの別フレームを子ウィンドウから操作したい

いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません!
内容は以下の通り(分からないのは3)です。どうぞ宜しくお願いいたします。


1:画面を、AとBの2つのフレームに分割しています。
【index.html】
<frameset>
 <frame src="A.html" name="A">
 <frame src="B.html" name="B">
</frameset>

2:Aフレーム内に記述してあるaaaアンカーをクリックすると、子画面ko.htmlを開きます。
<a href="javascript:void(0)" onclick="window.open('path=ko.html','_blank');">子画面</a>

3:ko.htmlではbbbというアンカーがあって、それをクリックすると、"親画面のBフレームにbbbで指定したリンク内容を表示したい"のです。
<a href="javascript:void(0)" onclick="opener.window.location=('B?path=/home/~/~/ZZZ.html');">開きたいファイルZZZ.html</a>
と書くと、openerはAだからAにZZZ.htmlの内容が表示されてしまうので、(全くおかしな記述をしているのかもしれませんが・・・(- -;))あちこち調べながら、
B.opener.window.locationとか、
B.opener.window.location.hrefとか、
parent.B.window.locationとか、
parent.frames[1].window.locationとか、
ほかにもいろいろやってみたのですが、出来ませんでした・・・。
このような別フレームの操作が出来る方法があれば教えてください。
宜しくお願いいたします。

いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません!
内容は以下の通り(分からないのは3)です。どうぞ宜しくお願いいたします。


1:画面を、AとBの2つのフレームに分割しています。
【index.html】
<frameset>
 <frame src="A.html" name="A">
 <frame src="B.html" name="B">
</frameset>

2:Aフレーム内に記述してあるaaaアンカーをクリックすると、子画面ko.htmlを開きます。
<a href="javascript:void(0)" onclick="window.open('path=ko.html','_blank');">子画...続きを読む

Aベストアンサー

ご質問の場合、子ウィンドウ(ko.html)からみて、openerはフレームAになっていますから、window.opener~はフレームAに対する操作を意味することになります。

Bフレームを取得するには
window.opener.top.document.getElementsByName('B')[0].src='http://www.yahoo.co.jp/';
などのようにしてあげればよいかと…

ところで現状で、ko.htmlは開いているのでしょうか?
(こちらの環境では、ご質問の通りだと開きません)

Qフレーム分けされたJSPでのsubmit

JSP画面の上フレームがframeA,下がframeBで
上のフレームにsubmitボタンがある時、
下のフレームのフォームをsubmitしたい場合は
どのようにすればいいのでしょうか?

以下のようにしているのですが、うまく動いていません。
教えて下さい。

現在書いているframeAの処理
==================================================
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function doSubmit(){
parent.frameB.document.ManagementFORM.submit();
}
//-->
</SCRIPT>

<INPUT TYPE="submit" VALUE="登録確認画面へ" onClick="doSubmit()">
===============================================================

frameBのFORM
==============================================================
<FORM METHOD="POST" ACTION="ManagementProcessServlet" NAME="ManagementFORM">
==============================================================

JSP画面の上フレームがframeA,下がframeBで
上のフレームにsubmitボタンがある時、
下のフレームのフォームをsubmitしたい場合は
どのようにすればいいのでしょうか?

以下のようにしているのですが、うまく動いていません。
教えて下さい。

現在書いているframeAの処理
==================================================
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function doSubmit(){
parent.frameB.document.ManagementFORM.submit();
}
//-->
</SCRIPT>

<INPUT T...続きを読む

Aベストアンサー

#1です

>別の質問になっちゃいますが

>フレーム分けしている画面から次の画面を
>Servletから呼ぶときはforwardしただけだと
>上のフレームに表示されたりするとおもいますが
>どのようにすれば全画面に表示できますか?

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function doSubmit(){
parent.frameB.document.forms[0].target = '_top';
parent.frameB.document.ManagementFORM.submit();
}
//-->
</SCRIPT>
でどうでしょうか?

Qフレーム間のデータ取得

この様なことは可能でしょうか。
もし可能で在れば方法を教えてください。

投稿型ホームページを考えています。
構成は左右のフレームとし、左がメインで右がサブです。
左右とも部品(html)としたいので、frameを使うことが条件です。

具体的には以下のような内容です。
メインは閲覧者が投稿する内容とし、サブにはその中のキーワードを表示する。
サブに表示したキーワードは後日のために保存しておく。

例えば、メインでしりとりをやらせ、『ん』で負けた人の言葉をサブに表示する。
年に一度グランドチャンピオン大会を実施のため、
取ってあったデータを別途公開する。
(あくまで例えです、申し訳在りませんが実の内容は内緒です)

これから始めるのですが、左のフレームは作れる様な気がします。
グランドチャンピョン大会のために保存していた内容を表示することも出来ると思います。

今考えがまとまらないのが、
メインのテキストをある条件で抽出して、サブのフレームに表示する部分とそれを保存する部分です。
具体的にイメージできないのが、
メインのフレーム内のテキストをどう参照するかということです。

分からないながらに、javaでcopyというようなことをするのかな、とおぼろげに考えています。

兎にも角にも可否が知りたく、可能ならば方法も知りたいです。
長くなりましたが、宜しくお願いします。

この様なことは可能でしょうか。
もし可能で在れば方法を教えてください。

投稿型ホームページを考えています。
構成は左右のフレームとし、左がメインで右がサブです。
左右とも部品(html)としたいので、frameを使うことが条件です。

具体的には以下のような内容です。
メインは閲覧者が投稿する内容とし、サブにはその中のキーワードを表示する。
サブに表示したキーワードは後日のために保存しておく。

例えば、メインでしりとりをやらせ、『ん』で負けた人の言葉をサブに表示する。
年に一度...続きを読む

Aベストアンサー

データ参照の仕方だけ簡単に。

まず、ページ全体をframe.htmとし、左側のフレームの
名前をmain右側をsubとし、それぞれmain.htm,sub.htmを
呼ぶとします。
するとこんな感じで、subからmainを参照可能です。

//frame.htm
<html>
<frameset cols="50%,*">
<frame src="main.htm" name="main">
<frame src="sub.htm" name="sub">
</frame>
</html>

//main.htm
<html>
<body>
<form name="f1">
i1:<input type="text" name="i1" value="データ1"><br>
i2:<input type="text" name="i2" value="データ2"><br>
i3:<input type="text" name="i3" value="データ3"><br>
</form>
</body>
</html>

//sub.htm
<html>
<body>
<form>
<input type="button" value="i1の値" onClick="alert(parent.main.document.f1.i1.value)"><br>
<input type="button" value="i2の値" onClick="alert(parent.main.document.f1.i2.value)"><br>
<input type="button" value="i3の値" onClick="alert(parent.main.document.f1.i3.value)"><br>
</form>
</body>
</html>

すなわち、subにとって親のページのmainという名前の
フレーム(window)にあるdocumentの中のform名f1にある
i~要素の値(value)を参照するわけです。

データ参照の仕方だけ簡単に。

まず、ページ全体をframe.htmとし、左側のフレームの
名前をmain右側をsubとし、それぞれmain.htm,sub.htmを
呼ぶとします。
するとこんな感じで、subからmainを参照可能です。

//frame.htm
<html>
<frameset cols="50%,*">
<frame src="main.htm" name="main">
<frame src="sub.htm" name="sub">
</frame>
</html>

//main.htm
<html>
<body>
<form name="f1">
i1:<input type="text" name="i1" value="データ1"><br>
i2:<input type="text" name="i2" value...続きを読む

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

QHTMLフォームボタンによるターゲットフレームを指定したリンク

上下にフレーム分割してあり、上をname="header",下をname="contents"としてあります。


head側のHTMLに記述したフォームボタンを押すと、親ウインドウ(target="_parent")に
リンク指定先が展開されるようにしたいのですが下記の記述ではうまくいきません。
意図した親ウィンドウでなく、head側のフレーム内に展開されてしまいます。

<input type="button" name="01a" value="前へ" onclick="parent.head.location.href='../hoge1/1.htm'">
<input type="button" name="03a" value="目次" onclick="parent.head.location.href='../index.html'">
<input type="button" name="03a" value="次へ" onclick="parent.head.location.href='../hoge3/3.htm'">

参考にしたのは以下ですが、何が誤っておりますでしょうか。よろしくお願い致します。
http://www.west-mira.jp/javascript/link/button2.html

上下にフレーム分割してあり、上をname="header",下をname="contents"としてあります。


head側のHTMLに記述したフォームボタンを押すと、親ウインドウ(target="_parent")に
リンク指定先が展開されるようにしたいのですが下記の記述ではうまくいきません。
意図した親ウィンドウでなく、head側のフレーム内に展開されてしまいます。

<input type="button" name="01a" value="前へ" onclick="parent.head.location.href='../hoge1/1.htm'">
<input type="button" name="03a" value="目次" onclick="pa...続きを読む

Aベストアンサー

おそらく次のような構成になっているのかと思います。
<frameset>
<frame name="header">
<frame name="contents">
</frameset>
このとき、
headerから、ひとつ上の親にリンクを展開しようとすると、つまりフレーム構成がはずれる、ということですよね?

でしたら、
parent.location.href="URL"
が正しい記述です。
parent.(フレーム名).location.href="URL"
ですから、親ウインドウを基準にして
指定したheadフレームにリンクを展開していることになります。

Qリンクをクリックした時にformからPOST送信したい。

HTML、PHP、JavaScript等でサイトを作っているのですが・・・。

【実現出来ている例】
<form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">
 <input type="submit" value="送信">
</form>
 submitボタンを一つ置いて、それがクリックされた場合に
formの内容をPOSTで送信する。

【実現したい例】
<form name="form1 method="post">
 <a href="Next.php" onClick="???">???</a>
</form>
 formの中のリンクをクリックされた場合に、formの内容を
POSTで送信したいのですが、その実現方法がわかりません。
GETで送るという手もあり得ますが、今回はどうしてもPOST
したいのですが。

Aベストアンサー

<form name="form1" method="post" action="Next.php">
<a href="#" onClick="document.form1.submit();">???</a>
</form>

onclick内の対象がform1としてあてているので、
アンカータグは別にform内に記述しなくても大丈夫です

form内にhidden等でnameとvalueを持ったパラメータがあればそれも送られます

アンカータグから動的にvalueを変更したい場合は、
document.form1.hogename.value = 'hoge';
等をsubmit()の前に行えば可能です

ただしform内に
<input type="hidden" name="hogename" value="">
を記述する等、変更先パラメータの元を用意する必要がありますのでご注意下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング