• ベストアンサー

自身のページとiframeの2つのページを同時更新する方法

いつもありがとうございます。初心者です。御指導お願いします。 テキストにリンクを貼って、クリックと同時にiframeの2ヶ所のページにGETでデータが送信され、同じ値がGETで自身のページにも送信され 自身とiframeの3つのページが同時に更新されるようにしたいのですが、下記の記述では、GETで送信されて、iframe内のページは更新されるのですが、自身のページは更新ボタンを押さないと内容が更新されません。 テキストリンクをクリックしただけで、自身のページとiframe内の2つのページを同時更新できる方法を教えて下さい。 <SCRIPT language="JavaScript"> function Syncro(mPage,cPage,sPage){ parent.main.location.href=mPage; parent.control.location.href=cPage; self.location.href=sPage; } </SCRIPT> phpで書いたページ内のテキストリンクです。 <A HREF="Javascript:Syncro('right.php?entry_day=2008-02-04','top.php?entry_day=2008-02-04','offer_calender.php?entry_day=2008-02-04')">2008-02-04</a> phpで書いたページ内のiframe のページ <td bgcolor="#999999"><iframe src="right.php?entry_day=2008-02-04" name="main" width="300" height="330" scrolling="yes"></iframe></td> <td bgcolor="#3399CC"><iframe src="top.php?entry_day=2008-02-04" name="control" width="677" height="330" scrolling="yes"></iframe></td>

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

  • ベストアンサー
  • arexis
  • ベストアンサー率66% (66/99)
回答No.2

昨日読んで他のフレームの事じゃないと成り立たない話なので あれ?って思っていましたが >offer_calender.php で >その中のiframe のリンク先に >riht.php >top.php >を指定しております。 これで アンカーがクリックされたら offer_calender.php を offer_calender.php?entry_day=2008-02-04 と言う呼び出しを行うのですよね? offer_calender.php?entry_day=2008-02-04が呼ばれた時点で 前の処理のJavaScriptでのlocation指定は全く無意味です。 2つのiframeはoffer_calender.phpごと消滅しますから。 JavaScriptは一切不要ですよ。 アンカーを <A HREF="offer_calender.php?entry_day=2008-02-04">2008-02-04</a> offer_calender.php のPHPで、受け取ったデータからiframeのsrcを指定変更。 無処理で単純に書けば、iframeのHTML部分は <iframe src="right.php?<?=$_SERVER['QUERY_STRING']?>"></iframe> <iframe src="top.php?<?=$_SERVER['QUERY_STRING']?>"></iframe> これで目的は果たせます。 ってのが #1さん が書いてる事だと思いますよ。

nicolemen
質問者

お礼

うまく動くことができました。 自分の間違いにも気付きました。 どうも御指導ありがとうございました。

nicolemen
質問者

補足

ありがとうございます。 GETでデータとしては受渡しがうまく行くのですが、 受渡しの日付の日のテーブルの指定日の <td bgcolor-"#990000">日付</td> の背景色を変えようとするのですが、日付は変われど 背景色は、更新ボタンを押さないと分かりません。 どうしてなのでしょう?

その他の回答 (1)

回答No.1

self.location.hrefを変更した時点でその中にあるインラインフレームは消滅します。 offer_calendar.phpが出力するHTMLの中で、 <iframe src="right.php?entry_day=2008-02-04"></iframe> <iframe src="top.php?entry_day=2008-02-04"></iframe> を入れれば良いと思います。

nicolemen
質問者

補足

ご返事遅くなりました。ご解答ありがとうございます。 記述の補足を致します。 phpで書いているページと言うのは、 offer_calender.php で その中のiframe のリンク先に riht.php top.php を指定しております。 そこでoffer_calender.php内の日付を変更した際に rigth.phpとtop.php への日付の更新は出来たのですが、 offer_calender.php内での日付からoffer_calender.php内の 他のデータの内容を更新したいのですが、変更できません。 どうぞよろしくお願いします。

関連するQ&A