• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フレームの代わりにPHPを使う)

フレームの代わりにPHPを使う

このQ&Aのポイント
  • フレームの代わりにPHPを使ってメニューを作成する方法について教えてください。
  • メニューを1ページずつ追加する方法では、前ページの変更が必要になるため、PHPを使用したメニューの作成方法を知りたいです。
  • PHPを使用して現在表示しているメニューの項目に画像を変えることはできるのでしょうか?

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

  • ベストアンサー
  • Sylar
  • ベストアンサー率71% (10/14)
回答No.4

GETをつかって <?php $page=$_GET['p']; ?> <html> <head> <style> ul.menu a{ background:#000; color:#fff; } ul.menu a.active{ background:red; color:#000 } </style> </head> <body> <ul class="menu"> <li><a href="?p=1" <?if($page==1){echo "class=\"active\"";}?>>menu1</a></li> <li><a href="?p=2" <?if($page==2){echo "class=\"active\"";}?>>menu2</a></li> <li><a href="?p=3" <?if($page==3){echo "class=\"active\"";}?>>menu3</a></li> </ul> </body> こんな感じで。

fujisann66
質問者

お礼

なるほど・・・。 画像を使うことを前提にしていましたが、 これだとメニュー変更の際も画像をいちいち作らなくていいですし、 スタイルシートを使えば、画像に負けないようなメニューを 作ることができるかもしれないですね。 この方法も検討してみます。 ありがとうございました。

fujisann66
質問者

補足

すいません。 このようなことは可能でしょうか。 例えば、「menu1.html」と「menu1-1.html」と「menu1-2.html」のどれかを開いているときは、 「menu1」というメニュー項目だけ、色を変えて表示する、などです。

その他の回答 (4)

  • Sylar
  • ベストアンサー率71% (10/14)
回答No.5

No.4です。 >画像を使うことを前提にしていましたが、・・・ それなら<a>にそれぞれclass(かid)をつけて ul.menu a{ display:block; width:**px;/*画像の幅*/ height:**px;/*画像の高さ*/ } /*MENU1*/ ul.menu a.normal_1{ background:url(通常時の画像URL);} ul.menu a.normal_1:hover{ background:url(オンマウス時の画像URL);} ul.menu a.active_1{ background:url(アクティブ時の画像URL);} /*MENU2*/ ul.menu a.normal_2{ background:url(通常時の画像URL);} ul.menu a.normal_2:hover{ background:url(オンマウス時の画像URL);} ul.menu a.active_2{ background:url(アクティブ時の画像URL);} /*MENU3*/ ul.menu a.normal_3{ background:url(通常時の画像URL);} ul.menu a.normal_3:hover{ background:url(オンマウス時の画像URL);} ul.menu a.active_3{ background:url(アクティブ時の画像URL);} <ul class="menu"> <li><a href="?p=1" <?if($page=="1"){echo "class=\"active_1\"";}else{echo "class=\"normal_1\"";?>>menu1</a></li> <li><a href="?p=2" <?if($page=="2"){echo "class=\"active_2\"";}else{echo "class=\"normal_2\"";?>>menu2</a></li> <li><a href="?p=3" <?if($page=="3"){echo "class=\"active_3\"";}else{echo "class=\"normal_3\"";?>>menu3</a></li> </ul> とすればそれぞれ画像を背景に入れられます。 >「menu1.html」と「menu1-1.html」と「menu1-2.html」のどれかを開いているときは、「menu1」というメニュー項目だけ、色を変えて表示する 可能です。 if($page=="1")の条件を($page=="1" || $page=="1-1" || $page=="1-2")とかに変えればいいです。 いちいち書き足すのがめんどうならGETを2つにして、 $page=$_GET['p']; $sub_page=$_GET['s']; <a href="?p=1" <?if($page=="1"){echo "class=\"active\"";}?>>menu1</a> <a href="?p=1&s=1" <?if($page=="1"){echo "class=\"active\"";}?>>menu1-1</a> <a href="?p=1&s=2" <?if($page=="1"){echo "class=\"active\"";}?>>menu1-2</a> ちなみに、「menu1.html」、「menu1-1.html」のようにGET部分(2つ)を「1-1」にしたり、拡張子を「.html」というように 静的に見せたければ.htaccessで工夫する必要があります。 それについては「.htaccess 動的 静的」などでググってみてください。

fujisann66
質問者

お礼

あとから付け足した補足にも回答していただいて・・・。 とても参考になりました。 これで、完璧なメニューが作れそうです。 ありがとうございました。

fujisann66
質問者

補足

何度も申し訳ないです。 スタイルシートをheadタグ内で指定する場合ではなく、 各タグに直接記述する場合だと、どのようにすればいいのでしょうか。 <style>を使わない場合だとどうするのか教えていただきたいのです。 これ以上、色々お伺いするのは申し訳ないと思い、 自分で試行錯誤もしてみたのですが・・・。 本当にすいません。よろしくお願いします。

  • koke29
  • ベストアンサー率58% (114/196)
回答No.3

現在表示している部分だけ、画像を変えて分かりやすくする ということについては、HTML+CSSで対応します 自動でページごとに、メニューを変化させる ということについては、参考サイトの方法でたぶん出来ますよ 上手く出来なかったとおっしゃっていますが、何が上手くいかなかったですか? サンプルのコピペで実行してみると、どんな風になるかはわかりますよね で、コード内の内容がどこにどう反映しているのかを照らし合わせて 自分の欲しいものが出来るように加工していけば大丈夫です ただ、YAHOOのメニューのように、小カテゴリのメニューがさらに表示 されるような作りではないので、そういう風にしたいならちょっとアレンジ が必要になります これはプログラムの知識がゼロだと難しいかもですね デザイン部分のことだけ考えて返答しますと echo "<b>" . $contName[$i] . "</b>"; ここが現在表示している項目を表す部分です サンプルそのままだとHTMLタグは<b>メニュー</b>の状態なので 太字になるだけ、ということです ここに何か装飾をしたいなら、CSSにまとめて id=やclass=という記述を 入れてみれば 見た目は変わりますよ ※<b>ではなく<p>にしたほうがいいかもしれません echo "<p id='○○'>" . $contName[$i] . "</p>"; いずれにせよ、知識ゼロで応用は難しいとは思うので、やる気があるなら 勉強してみてはいかがでしょう 多少覚えておけば色々便利になりますよー

fujisann66
質問者

お礼

回答ありがとうございました。 とりあえず、参考サイトに書いてあったことを、そのままコピペして 上手く動作させるところまでは出来ました。 なんとなくですが、分かってきた部分も多いので、 もう少し勉強したいと思います (まだまだ、これを応用するのは難しいので)。

  • tom951
  • ベストアンサー率30% (29/96)
回答No.2

質問者のやりたいことPHPを使うまでもなくSSIで十分な気がします。

fujisann66
質問者

お礼

回答ありがとうございました。 SSIなのですが、サーバへの負担が高いということを聞いたのですが、 どうなんでしょう?

  • koke29
  • ベストアンサー率58% (114/196)
回答No.1

今回やりたいことのPHPの役割は「外部ファイルの読み込み」です なので、読み込む外部ファイルの作り方さえわかればいいんですよ PHPで読み込むファイルは、フレームでいう子のファイルです 子のファイルはHTML+CSSや必要ならjavascriptやPHPを使って、自分が 見せたいように作っていくだけなんですよー 問題を混同してしまっているようですが、シンプルに考えましょうね (この質問はPHPではなく、HTMLなどのカテでするべき内容です)

fujisann66
質問者

補足

すいません。 カテ違いでしたか・・・。 >>PHPを使って、自分が >>見せたいように作っていくだけなんですよー そこは、十分に理解しています。 今回やりたかったのは、自動でページごとに、メニューを変化させるという ことなんですが。 そういうことが出来るのか、出来ないのかさえ分からないので、 調べてみたら、それらしきものが見つかったのが ​http://blog.livedoor.jp/kalibora/archives/6622031.html でした。 ですが、これさえ私には上手く出来なかったので、 私の技術では、とても無理かもしれませんね。 ありがとうございました。