• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpでのリンク)

PHP初心者のためのリンクに関する問題

このQ&Aのポイント
  • PHP初心者がプルダウンで選択肢を表示させる方法について質問です。質問者はHTMLとPHPの違いがよく分からず、リンク部分がHTMLになっていることに疑問を持っています。現在のコードでは、複数のリンクを作成するために個別のファイルを作成しているが、もっと効率的な方法はないかと悩んでいます。
  • PHP初心者がプルダウンで選択肢を表示させる方法について質問しています。現在のコードでは、個別のリンクを作成するために個別のファイルを作成しているが、これが効率的な方法なのか疑問を感じています。スマートな方法はないかと質問者は相談しています。
  • PHP初心者がプルダウンで選択肢を表示させる方法について質問しています。現在のコードでは、リンクを表示するために個別のファイルを作成していますが、これが良い方法なのか疑問を感じています。もっとスマートな方法があれば教えてほしいという質問です。

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

  • ベストアンサー
  • nikuq
  • ベストアンサー率22% (8/36)
回答No.3

ひょっとして、私の書いたソースそのままコピペで使ってませんか? そのままだと、何も表示されませんよー(^_^;) <?php if($_GET['click_id'] == "1") { $title = "${hoge_data[0]}がクリックされました"; } elseif($_GET['click_id'] == "2") { $title = "${hoge_data[1]}がクリックされました"; } ?> というのは、PHP上の変数『$title』を定義したまでで、 実際に表示するには、『echo』『print』関数で表示しなければなりません。 しかも、『${hoge_data[0]}』と『${hoge_data[1]}』はyuenaさんが別ファイルか何かで 定義済みの変数である事を前提にしています。 つまり、${hoge_date}という変数にyuenaさんが下記の様に定義していると 仮定します。 $hote_date = array("ほげでーた1","ほげでーた2"); その上で、私の書いたスクリプトに当てはめると、 <?php if($_GET['click_id'] == "1") { $title = "${hoge_data[0]}がクリックされました"; } elseif($_GET['click_id'] == "2") { $title = "${hoge_data[1]}がクリックされました"; } ?> print "${title}"; とすれば、ユーザがmood.phpで${hoge_date[0]}である『ほげでーた1』の リンクをクリックした場合には、 リンク先であるhoge.phpが表示された際に、GETデータから変数『$title』を定義し、 その変数『$title』がecho関数かprint関数により 『ほげでーた1がクリックされました』 と表示されるはずです。 同じ様に、ユーザが『ほげでーた2』をクリックすれば、 『ほげでーた2がクリックされました』 と表示されます。

yuena
質問者

お礼

ご指摘の通り…そのままコピペして使ってました…(´・ω・`;) 教えていただいた通りやってみましたら、うまくいきました!!!! 本当にありがとうございましたm(。≧д≦。)m 本当に困っていたのですごくすごく助かりました!!!! もっと勉強が必要ですね…。 がんばります! また困った時は助けていただければ嬉しいです。 本当にありがとうございました!

その他の回答 (2)

  • nikuq
  • ベストアンサー率22% (8/36)
回答No.2

ユーザがindex.phpのプルダウンで選択した項目によって、『次へ』をクリックした際に表示される『mood.php』での表示されるタイトルとリンクを変更し、 それぞれのリンク先をクリックした場合に、『hoge.php』のデザインのHTMLが一緒でタイトル等の表示される内容だけ変えたいという事ですね。 であれば、mood.phpファイルのリンク設定でGETでIDを送り、どのリンクをクリックしたか識別させればいいのではないでしょうか。 mode.phpファイルの <A href="data/hoge.php"><? echo ($hoge_data[0]); ?></A><BR> <A href="data/hoge_1.php"><? echo ($hoge_data[1]); ?></A><BR> を <A href="data/hoge.php?click_id=1"><? echo ($hoge_data[0]); ?></A><BR> <A href="data/hoge.php?click_id=2"><? echo ($hoge_data[1]); ?></A><BR> といった感じです。 これで、リンクをクリックした際に表示されるhoge.phpで、 クリックしたリンクのGETデータを元に、 <?php if($_GET['click_id'] == "1") { $title = "${hoge_data[0]}がクリックされました"; } elseif($_GET['click_id'] == "2") { $title = "${hoge_data[1]}がクリックされました"; } ?> といった感じで、表示させる内容を切替えては如何でしょう? hoge.phpでID数分のコンテンツを設定するのが手間ですが、 HTMLを増やしてしまうと、後でデザイン変更になった時に ものすごーく面倒な事になる事を考えると、まだマシです。 こんな感じはいかがでしょう??

yuena
質問者

補足

ありがとうございます! <A href="data/hoge.php?click_id=1"><? echo ($hoge_data[0]); ?></A><BR> <A href="data/hoge.php?click_id=2"><? echo ($hoge_data[1]); ?></A><BR> で次のページが一つで収まる事に成功しましたm(。≧д≦。)m でもまた問題が出てきました…。 次のページ<question.php>で <?php if($_GET['click_id'] == "1") { $title = "${hoge_data[0]}がクリックされました"; } elseif($_GET['click_id'] == "2") { $title = "${hoge_data[1]}がクリックされました"; } ?> では何も表示されませんでした。 何の原因が考えられますか? 何度もごめんなさい。゜゜。(*pдq*)。゜゜。

  • nikuq
  • ベストアンサー率22% (8/36)
回答No.1

おっしゃってる事を理解していなかったらごめんなさい。 第1プルダウンで選択した項目によって、 第2プルダウンに表示させる内容を変更するという事で宜しいですか?

yuena
質問者

補足

さっそくのお返事ありがとうございます(>д<)!! いえいえ、どんでもないです。うまく説明できていなくてごめんなさい。 第1プルダウン(index.php)で選択した項目のページ(mood.php)に、プルダウンではなく普通にリンク(選んだら色が変わってクリックできる)表示を何個かつけたいと思っています。 ちなみに携帯で見る用のページを作っています。 <index.php>-------------------------------- <FORM method="post" action="mood.php"> <SELECT name="mood"> <OPTION value="0"><? echo($mood_tbl[0]); ?> <OPTION value="1"><? echo($mood_tbl[1]); ?> : : </SELECT> <BR> <CENTER> <INPUT type=submit value=次へ> </CENTER> </FORM> <mood.php>--------------------------- <? if ($mood == 0) { ?> : : <? echo ($mood_tbl[0]); ?> <A href="data/hoge.php"><? echo ($hoge_data[0]); ?></A><BR> <A href="data/hoge_1.php"><? echo ($hoge_data[1]); ?></A><BR> : : 今はこんな感じになっています。 hoge.php、hoge_1.php、hoge_2.php…と内容が同じで格納?配列?されているデータが違うだけなのです。 HTMLのようにつくっていたら、たくさんのソースが必要になりました…。そうではなくPHPでスマートにできないかと思ったのです。。 分かりにくいと思いますが、宜しくお願いします。 ご質問ありましたら、何でも答えます!!

関連するQ&A