プロが教えるわが家の防犯対策術!

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で質問しましょう!