• ベストアンサー

PHPでの表示内容の切り替え

cheese014の回答

  • cheese014
  • ベストアンサー率85% (12/14)
回答No.2

イメージとしてはこんな感じでしょうか? すぐ動きを確認できるように $config という2次元配列を使ってますが、実際には csv なり DBに格納したデータなりを使うようにすると良いです。 ※注意※ インデントに全角スペースを利用しています。動かす際は全角スペースを半角スペースに置き換えてください。 //-- 設定 $config = array(   '1' => array(     'path' => 'img/1.jpg',     'caption' => '1の説明です'   ),   '2' => array(     'path' => 'img/2.jpg',     'caption' => '2の説明です'   ), ); //-- 動作モード $mode = (isset($_GET['mode'])) ? $_GET['mode'] : ''; //-- 画像リスト出力 foreach ($config as $id => $data) {   echo "<a href='{$_SERVER['SCRIPT_NAME']}?mode=explain&id={$id}'><img src='{$data['path']}'></a><br>"; } //-- 画像の説明文を表示 if ($mode === 'explain') {   if (isset($_GET['id'], $config[$_GET['id']])) {     echo $config[$_GET['id']]['caption'];   } }

coconopapa
質問者

お礼

入力する場所がないのでお礼欄に入力することをお許しください。 <a href="$mode = (isset($_GET['mode'])) ? $_GET['mode'] : '';"><img src="001.png"></a> で良いでしょうか。よろしくお願いします。

coconopapa
質問者

補足

こんなに丁寧な参考ソースまで本当にありがとうございます。 配列(array)に画像と説明をセットし、クリックしたとき配列のNo.を変数($mode)セットし出力するという処理でよいでしょうか。 本当に嬉しいです、早速組み込みたいと思います。 そこで恥を忍んでお尋ねしますが画像(001.png)をクリックしたとき動作モードの処理が行われるには<a href= をどのように記述したらよいでしょうか。 申し訳ありませんがよろしくお願いします。

関連するQ&A

  • クリックで表示/非表示の切り替え

    私は今現在HPを作成しているのですが、その中の特定のページでテキストをクリックしたら表示/非表示の切り替えをしたいと考えてます。 表示/非表示自体は検索して出てきたオープンソースを拝借したら出来ました。 ソースは下記のように記述してます。 しかし、既存の状態だと『テキスト1』をクリックして表示させたらもう一度『テキスト1』をクリックしない限り非表示にはなりません。 『テキスト1』をクリックして表示している状態で『テキスト2』をクリックしたら自動的に『テキスト1』の表示されてる部分を非表示しにしたいのですが。 <head> <SCRIPT type="text/JavaScript"> <!-- function showHide(targetID) { //functionの宣言。受けとったIDは変数targetIDに格納。 if( document.getElementById(targetID)) { //指定のIDのついたオブジェクトがあったら処理する //指定されたIDのstyle.displayがnoneなら if( document.getElementById(targetID).style.display == "none") { //blockに変更する document.getElementById(targetID).style.display = "block"; } else { //noneでなければ、つまりblockなら //noneにする document.getElementById(targetID).style.display = "none"; } } } //--> </SCRIPT> </head> <body> <a href="#" onClick="showHide('SH-001');return false;">テキスト1</a> <a href="#" onClick="showHide('SH-002');return false;">テキスト2</a> <div id="SH-001" style="display: none">テキスト1をクリックしたら表示される部分</div> <div id="SH-002" style="display: none">テキスト2をクリックしたら表示される部分</div> </body> Javascriptについてはまだ知識がなく解決方法が皆目見当もつきません。 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

  • FLASH8 外部テキストファイルの読み込みについて

    外部テキストファイルの読み込みを参考資料などを見ていると、下記のような形式で読み込みを行っているのですが。 a.txt --------------------- 任意の変数名1=値 任意の変数名2=値 任意の変数名3=値 --------------------- 下記のようなテキストファイルを読み込むことは可能でしょうか? a.txt --------------------- 2<>名前<>メールアドレス<>画像.jpg<> 1<>名前<>メールアドレス<>画像.jpg<> --------------------- ※最初の1文字目は連番の数字です 前文の方の読み込みは成功しておりますが、下の内容については、どうすればよいかわかりません・・・ 読み込みができるのであれば、各行はsplitで配列に格納したいと思っています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • phpは出力されたhtmlには表示されない。

    テキストボックスに現在表示されてるhtmlのソースを表示させる方法有りませんか? わざわざ右クリックしなくても見れるようにしたいです。

    • ベストアンサー
    • PHP
  • phpの処理中に画面表示ををするには?

    phpの処理中に画面表示ををするには? phpの処理中にalertや画面表示ができるように依頼があり。 使ってはいけない方法もあり解決方法がみつからず困っています。 処理内容 5回ループする処理で1回の処理に約10秒かかる、 各回の処理が終わったところで画面表示やalertをする。 使ってはいけない方法 ・iframeやAjaxなどの非同期処理みたいな事はしない。(却下されました、、) ・このphpのループの各回でsubmitや再読み込みをさせない。 今までphpの処理が全て終わってから画面表示するイメージでいたので、 実現できるのか確認するため下記のソースを作りました。 結果:10秒ではなく50秒後にすべてのalertがでてきました。 ----------ここから---------- <html><head> <script> <!-- <? for(i=0; i<5; i++){ //10秒の処理 ?> alert("メッセージ:".i); <? } ?> //--> </script> </head> <body>無理な気がする</body> </html> ----------ここまで---------- (変数のダラは抜いています) 使ってはいけない方法以外に解決方法はあるのでしょうか。

    • ベストアンサー
    • PHP
  • thickboxでの画像の表示

    thickboxで複数の画像を表示しようとしています。「その他の画像」のリンクをクリックするとそのページに関連する画像を表示したいと思っています。いろいろ調べているのですが、複数の画像のリンクを表示してグループ化しています。画像のリンクを表示することなくテキストリンクのクリックのみで表示したいです。PHPもあわせてコーディングするのでしょうか? よろしくお願いします。

  • フォームの内容をテキスト表示させたい

    すごく初歩的な質問ですみません。 表の中にセレクトメニューやラジオボタン、テキストフィールドがあり、それらに入力した内容を、最終的にボタンをクリックするとページ下部にある、テキストフィールド?に表示させるようにしたいのですが、いまいち構文がわかりません。 どなたかお力をお貸し願えないでしょうか。

  • PHPで何枚中何枚目という表示を作る方法

    複数のフォルダの中にある画像をそれぞれ数え  「4枚中2枚目」 といった感じで表示する方法を 教えていただけないでしょうか。 フォルダが複数にわたるため、 どういう風に書けばいいのかわかりません! 例えば ・フォルダ「1」  画像数5 ・フォルダ「2]  画像数7 ・フォルダ「3」  画像数3 ・フォルダ「4」  画像数7 という風にフォルダ内がなっているとして、 フォルダ1の画像がクリックされたときは 5枚中1枚目 フォルダ2の画像がクリックされたときは 7枚中3枚目 といった感じにしたいのです。 どなたかご存知の方、宜しくお願いします!!!

    • ベストアンサー
    • PHP
  • PHPの高速化

    HTMLとphpがごちゃごちゃになるとややこしいので $HTML .= "<div>hogehoge</div>" のような、HTMLソースコードをすべて、いったん変数に格納し、最終的に echo $HTML; とする手法で、作成していったのですが、 HTMLを変数に埋め込んだせいか、PHPの処理が完全に終わるまで HTMLが表示されなくなってしまい、 表示に時間がかかるようになってしまいました。 待ち時間を感じさせぬよう、HTMLを先に表示させ、 そのあとで、データベースに接続や、繰り返し処理のデータを 表示させるには、現在のすべてのHTMLソースを変数に入れるという 設計を改めるしかないのでしょうか。 または、別の方法で、 HTML記述部分を優先的に処理させる方法はないでしょうか。

    • ベストアンサー
    • PHP
  • クリックすると隠れたテキストなどが表示

    最初5行くらいで、続きをよむ、といったリンクを クリックすると隠れていた追加テキストが表示される スクリプトをつくりたいのです。 http://e-words.jp/w/JavaScript.html ↑これが参考事例なんですが… ソースを拝見すると onclickで処理を行われているようですが…… ご存知の方よろしくお願いします。

  • HTMLとPHPを分けた時の変数?について

    HTMLで値などを入力し、PHPで処理をする方法として、 ネットのサンプルソースでどの様に行われているか見たところ、 HTMLにてC言語でいう所の変数らしきものが無く、 また、PHPにも書く値に等しい変数が見受けられませんでした。 HTMLで値を入力してどの様にPHPに渡っているのか分からなかったのでご教授願いたいと思い書き込みました。 参考 eweb メールフォーム・アンケートフォーム 参考にしたソースは「Sample 1:アンケートフォーム」になります http://php.eweb-design.com/1301_mail.html 何卒宜しくお願い致します。

    • 締切済み
    • PHP