• 締切済み

【PHP】 リロードに関しての事です。

リロードさせずにページを切り替えるにはどうしたら良いのでしょうか? 今、フレームで縦に3分割にして、上フレーム・中フレーム・下フレームとしています。 下フレームで【リンゴ】【みかん】【ぶどう】のボタン表示させてます。 それで私のイメージは、例えば下フレームで【みかん】のボタンを押したら リロードさせずに、中フレームで表示しているページで「みかん」と表示させたいのです。 何方か、どうか方法などありましたら教えて下さい。 宜しくお願いします。

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2

他のフレームで表示している値を取得したいということですね。 それならばあまりエレガントな方法ではないですが、 Cookieやセッションで出力している値を保存するのはいかがでしょうか。 Cookieを使った場合ブラウザがCookieを受け付けなかった場合失敗する セッションを使った場合戻るボタンを押されると期限切れのページと表示される等 完全な制御は難しいです。 フレームを使う限り他フレームの状態取得はクライアントの支援が必要になりますし、 他のフレームに設定されている情報を取得する事はセキュリティー上の都合で ブラウザが許してくれない事例が多いでしょう。 クライアントが支援してくれなかった場合も想定すると、 Ajaxを使って全くリロードしないという思想で画面設計し、 Java Scriptを受け付けてくれなかった場合は画面全体を リロードするというのがよいのではないかと思います。

yorosiku_orz
質問者

補足

ご返答有難うございます。 Cookieやセッションも試したのですが・・・ うまい事できませんでした。(汗) Ajax については無知なので、Ajax を使用してのやり方がわかりません(汗) できれば、画面全体をリロードせずに行いたいと考えてました。 せっかくご返答して下さったのに・・・ 私の説明不足も合わせてすみませんでした。(汗)

回答No.1

formタグにtargetを指定するのではだめでしょうか? 以下のような感じで。 <form action="処理を行うPHP" target="中フレーム"> <input type="submit" value="りんご" /> <input type="submit" value="みかん" /> <input type="submit" value="ぶどう" /> </form> どうしても下フレームをリロードして一緒に中フレームを更新するのであれば、 Java Scriptかフレーム構成を変えるといったような対策が必要になると思います。

yorosiku_orz
質問者

補足

ご返信有難うございます。 それはできるのですが、中フレームに表示されてるページのURLを・・・ 例えば、上フレームのページで、そのtarget方法で指定ページを中フレームに表示させて 下フレームのページでは、その時、中フレームにはどのページが表示されてるかをURLで取得するやり方が知りたいのです。 それが出来なくて困ってました(汗)

関連するQ&A

  • 子フレームの自動リロードは可能でしょうか?

    フレームで2つに分割されたページ(frameset.htm)があるとします。 そのうち、一つのフレーム(menu.htm,name=MENU)はメニューとして常に表示されています。 もう一つのフレーム(name=MAIN)にはその時々でいろんなページが表示されます。 仮に、例えば60秒おきとかで、MAINにその瞬間に表示されているページを、 frameset.htmもmenu.htmもリロードせずに、 自動的にリロードさせることは出来ますか? MAINに表示させるページは閲覧者により手動でも変えられるようになっているため、リロードの瞬間にどのページが表示されているかは不定です。 なお、MAINに表示させるページ内に、Java ScriptやMETAタグは追加できない条件です。

  • フレームの大きさの変更はリロード必須?

    (1)のページでフレームを設定し、 (2)(3)(4)の3ページを表示するようにしております。 ((1)はtitleのみの表示です) 画面上のボタンで(3)(4)の表示スペースの割合を変更したいのですが、 (3)(4)をリロードする事無く割合を変更する事は可能でしょうか?

    • ベストアンサー
    • HTML
  • フレームひとつだけ、リロードできない?

    main,menu.detail(.html)の3つのフレームに分割したホームページでmenu画面から選択してdetail画面に表示するようにしていますが、更新して転送し確認するためリロードするとdetail画面がトップ画面に切り替わってしまいます。現在表示されているdetail画面のままリロードできないでしょうか?

  • リンクのターゲットの仕方について

    index.htmlと同じフォルダに上(ue.html)下(sita.html)に2分割されたフレームページ(top.html)があります。 これは、上のボタンから下にページが表示されるように『target=sita』で設定し、ちゃんと表示できます。 index.htmlのあるフォルダに新たにフォルダ(TRIP)を作り、上(../ue.html)と左(phidari.html)右(pmigi.html)に分かれた3分割のフレームページ(p.html)を新たに作成します。 これは、左のボタンからから右に『target=migi』で、ちゃんと表示されます。 次に、上のボタンから下に左右に分かれた3分割のフレームページ(p.html)を、元通り2分割のフレームページ(top.html)に戻したいのですが、『target=sita』では、別の窓が開いてしまい、下に表示されません。 どうしたら、3分割のフレームページを2分割のフレームページに戻すことが出来るんでしょうか? まだまだHP作成初心者ですので、質問に分かりにくい部分があると思いますが、教えていただけると嬉しいです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 子ウィンドウ内にあるフレームセット内のフレームからの親ウィンドウリロード

    初めまして。JavaScript初心者です。 今回、以下のようなことをやろうと考えております。 (1)あるウィンドウフレームセット(フレームセット(1)とします)を配置し、フレームでウィンドウを2分割し、上半分のフレーム名をフレームA、下半分のフレーム名をフレームBとします。 (2)フレームAに配置されたボタンを押すことにより、別のウィンドウを呼び出します。そのウィンドウにもフレームセット(フレームセット(2)とします)を配置し、そのフレームセット内もフレームを2分割し、上半分のフレーム名をフレームC、下半分のフレーム名をフレームDとします。 (3)フレームCに配置されたボタンを押すことにより、フレームD内にさらにフレームセット(フレームセット(3)とします)を配置し、フレームセット(3)内もフレームを2分割し、上半分のフレームをE、下半分のフレームをFとします。 (4)フレームEに配置されたボタンを押すことにより、フレームBをリロードします。 (1)~(3)はすべて正常に処理できるのですが、(4)がうまくいきません。 window.opener.フレームB.location.replace("フレームBのURL") でうまくいくと思ったのですが、うまくいきません。  つたない質問の書き方で大変申し訳ありませんが、どなたか分かる方がいらっしゃいましたらご教示いただけないでしょうか。宜しくお願い致します。

  • 素朴なフレーム更新の疑問

    上下に分割したフレームページを作成した時、下の部分だけ表示されるものをかえていったとしても、フレームごと呼び出ししていないので、ブラウザのアドレスバーには最初に呼び出したURLがそのまま表示されていますよね。 なのにブラウザの更新ボタンをクリックした時には表示されているURL、つまり最初のページに戻らず、今あるページがリロードされるのでしょうか? これはHTMLやブラウザのバージョンが関係しているものではなく、もっと他の所に答えがあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • キャッシュ効かないリロードじゃないとカウンタ増えない

    普通にページをリロードボタンを押してもカウンタが増えません。 カウンタの表示は画像ではなく数字をそのまま表示しています。 コントロールボタン押しながらリロードボタンを押すと カウンタは増加します。(Win2000、IE6) 画像で数字を表示しないと駄目なんでしょうか?

    • ベストアンサー
    • CGI
  • Excelでの○表示

    3つのセルに A1:みかん A2:りんご A3:ぶどう とそれぞれ項目が入力されています。りんごのA2セルをダブルクリックすると”りんご”の文字の上に○が表示されるような方法はありますか? できればラジオボタンのように、別のセルをダブルクリックすると他のセルの○は消える(A2りんごの上に○があるとし、A3ぶどうをダブルクリックするとA2りんごの○は消えてA3ぶどうの○のみに切り替わる)ようにしたいのですが。 または他の方法として、セルをダブルクリックするのではなく、コントロールツールボックスの「コマンドボタン」を4つ作り、それぞれのボタンを押すと対応したセルの文字の上に○を表示する(4つのうち増えた1つは○を全て消すボタンです)ような方法はありますか?

  • フレームページのメニューボタン

    いくつか同じような質問がありましたが、スクリプトでの解決方法がみつかりませんでしたので質問させてもらいます 今フレームを使ったHPを作っています フレームは上下で分割してあり、上のフレームにはFLASHをつかったメニューボタンを入れあり、ボタンを押すことで下のフレームに各ページを表示させます メニューボタンはマウスが乗ると色が変わるボタンなんですけど 下のフレームに表示してあるページと対応したボタンが常にonの状態になるようなFLASHメニューにしたいんですけどスクリプトをどう記述したらいいかわかりません だれか教えていただけないでしょうか? ちなみにFLASHソフトはフリーソフトSUZUKAを使っています

  • PHPのfor文とforeach文の使い方

    PHPのfor文とforeach文を使って、 ・果物の名前を4回繰り返す ・繰り返しの2回目と4回目は、"食べてください"という文字列を入れる という出力を返したいと考えています。 完成イメージは次のとおりです。 (1回目のループ) りんご ばなな ぶどう みかん (2回目のループ) 食べてください りんご ばなな ぶどう みかん (3回目のループ) りんご ばなな ぶどう みかん (4回目のループ) 食べてください りんご ばなな ぶどう みかん しかし自分が作成したプログラムでは、 次の2点について問題があります。 ・すべての繰り返しの前に"食べてください"が入ってしまう ・for文のループが止まらない 完成イメージの通りのプログラムにするためには、 どのように修正すればよろしいでしょうか? ご存知の方がいらっしゃいましたら、 ご教示願います。 ○質問の補足 自分が作成したプログラムは以下のとおりです。 for($i = 0; $i < 4; $i++) { if (($i = 1) || ($i = 3)) { echo "食べてください"; echo "</br>"; }; $fruits = array("りんご", "ばなな", "ぶどう", "みかん"); foreach ($fruits as $value) { echo $value; echo "</br>"; } } 以上、よろしくお願い申し上げます

    • ベストアンサー
    • PHP

専門家に質問してみよう