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

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

phpでのリンク

PHP初心者なのですが、教えて下さいm(__)m プルダウンでの選択史を選ぶと次にまた選択史を表示させたいのですが、PHPを勉強したばかりなのでスマートにソースを書くことができません。 ↓のような感じで一応できたのですが、これはおかしいと言われました。 PHPなのになぜ、リンクのところだけがHTMLになっているの?と。 言われてみればそうなのですが、これ以外よく分からなくて…。 色々調べたのですが、上手くいきませんでした。 <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>…といっぱい必要になってきてしまい…。 何かスマートな方法はありますでしょうか? 宜しくお願い致しますm(__)m

  • yuena
  • お礼率34% (51/146)
  • PHP
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • 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

  • phpでハイパーリンクして値を持っていきたい

    今phpを使ってhtmlのタグを使いハイパーリンクして値を持っていきたいのですけどよくわかりません for($i;$i>=0;$i--){ echo '<a href="user.php">'.$arr[$i].'</a><br />'; echo $i; このようにプログラムは書いてます user.phpに arr[$i]の値をそれぞれ持っていきたいのですけど どのように書けばいいでしょうか?

    • ベストアンサー
    • PHP
  • 携帯サイトで [プルダウンリンク] を使いたいのですが・・・m(_ _)m

    携帯用サイトを作成しています。 <a href="○○○/~×××/download01.php?sid=<?=$sid?>">ダウンロード1</a><br> <a href="○○○/~×××/download02.php?sid=<?=$sid?>">ダウンロード2</a><br> <a href="○○○/~×××/download03.php?sid=<?=$sid?>">ダウンロード3</a><br> <a href="○○○/~×××/download04.php?sid=<?=$sid?>">ダウンロード4</a><br> <a href="○○○/~×××/download05.php?sid=<?=$sid?>">ダウンロード5</a><br> etc・・・ というPHPを使用したリンク郡を、プルダウンリンクとして一行にまとめたいのですが、 どう記述すれば良いのか教えて頂けないでしょうか。 ちなみに、このCGIは業者に製作してもらいました。 私自身はCGIのスキルはなく、HTMLを記述出来る程度です。 どうぞ、皆様の知恵をお貸し下さい。宜しくお願いします。m(_ _)m

    • ベストアンサー
    • PHP
  • phpでのHTMLの表示(特にJavascriptの部分)についてご教

    phpでのHTMLの表示(特にJavascriptの部分)についてご教授下さい。 phpで以下のhtmlを表示させ、Javascriptを実行させたい時にエラーが出るので <a href="" onclick="Hoge(’hoge’);return=false”>リンク</a> Firefoxでソースを見てみると以下の通りになります。 <a href="" onclick="Hoge(" hoge="" );return="" false;="">リンク</a> PHPで表示させたい場合(特にJavascriptの部分)はどのような書き方をすればよいのでしょうか?? ちなみに、IE8だとソースはきれいでしたが、Javascriptが実行できませんでした。 お急がしところ申し訳ございませんが、 ご教授いただけましたら幸いです。

    • ベストアンサー
    • PHP
  • locatin.hrefのリンク付き画像とPHP

    現在、MySQLとPHPを組み合わせたシステムを作っています。 MySQLのi5_volumeというカラムの中の数値が「1より大きい」ときにボタンを表示させ、0以下であれば表示させないようにしたいと考えています。 ボタンは画像でありlocation.hrefで別のページにリンクされています。 (OAuthで認証エラーを避けるため <a href></a> はNG) 画像からのリンクは下記のソースになります。 【画像のソース(locatin.hrefのリンク付き)】 <img src="./abc.png" onclick="location.href='sell.php?e2_id=<?php echo $price['e2_id']; ?>&time=<?php $time = date('G'); echo $time; ?>';" /> 「i5_volumeが1より大きければ画像を表示させ、0以下であれば表示させない」ためのPHPは下記です。 【規定値で画像が表示されるPHP(画像は直リンク)】 <?php IF ($my_volume['i5_volume'] >= 1) {echo "<IMG src=\"./abc.png\" >";} ELSE {echo "";} ?> 従い、 【規定値で画像が表示されるPHP(画像は直リンク)】 の画像のソース部分を 【画像のソース(locatin.hrefのリンク付き)】 に置き換えれば基本的にはいいはずなのですが、下記ではうまくいきません。エラーになり何も表示されません。 どこが悪いかご指摘頂けませんでしょうか? <?php <?php IF ($my_volume['i5_volume'] >= 1) {echo " <img src=\"./abc.png\" onclick="location.href='sell.php?e2_id=$_price['e2_id'];&time= $time = date('G'); echo $time;'" /> ";} ELSE {echo "";} ?>

    • ベストアンサー
    • PHP
  • PHPとCSVの表示 もっとスマートにしたい

    現在PHPに手を出し始めた初心者です まだ分からない事だらけですが、できれば教えてください CSVファイルからデータを読み込んで表示するということを 苦戦しながらやっております ただ、1つのPHPファイルだけでの表示方法がわからず、今は3つのPHPファイルにしています 目的は大区分を選択後、小区分の一覧が表示され、小区分の1つを選択すると詳細が表示される という感じのものです まずCSVファイル 大区分,小区分,名称,詳細 1,101,hoge1,詳細1 1,102,hoge2,詳細2 2,201,hogex1,詳細x1 2,202,hogex2,詳細x2 3,301,hogexx1,詳細xx1 という感じに分けています で1つ目のhoge0.phpで <a href="hoge1.php?code=1">大区分(1)</a> ・・・ code が 1 なら hoge1.php で 小区分 1 の一覧を表示します 次に2つ目のhoge1.phpで $code = $_GET['code']; $lines = file('hoge.csv'); foreach($lines as $line) { $line = rtrim($line); list($bno,$sno,$name,$detail) = explode(",", $line); if ($bno==$code) { echo "<a href=hoge2.php?type=$sno>詳細</a>".$name."<br>"; } } type が 101 なら hoge2.php で 小区分 101 にある hoge1 項目の詳細を表示します 最後3つ目のhoge2.phpで $type = $_GET['type']; $lines = file('hoge.csv'); foreach($lines as $line) { $line = rtrim($line); list($bno,$sno,$name,$detail) = explode(",", $line);{ if ($no==$type) { echo $name.$detail; } } } 一応これでやりたい事は実現できたのですが、あまりにも不恰好で・・・ これを1つのPHP内で処理できるようにするにはどうしたらいいでしょうか? スマートになるやり方があれば教えてください

    • ベストアンサー
    • PHP
  • phpファイルで"?"と"&"を含むリンクが張れない

    a.phpでphpロジック外部に書いたHTMLリンクタグ <a href ="http://aaa.**.jp/bbb.php?id=231fa&pass=1">リンク</a> がブラウザに表示できません。 "?"と"&"と除いた <a href ="http://aaa.**.jp/bbb.php">リンク</a> はもちろんきちんと表示できるのですが。。 "&"を"&amp;"と変更してもだめでした。 "?"の変換文字コードはないみたいですし。。。 どなたかご教授ください。 宜しくお願いします。

    • 締切済み
    • PHP
  • 【PHP】正規表現でHTMLを置換したいのですが・・・

    HTMLのソースを、正規表現で置換をしてから画面に出力したいのですが、どのような正規表現を記述すればいいのか分からず困っています。。。。 下記(befor)の4つのリンクのうち、ファイルの拡張子が、pdf、doc、xlsのファイルだけ「download.php」というPHPのプログラムを通してからダウンロードさせるために、文字列を(after)の様に置換をしたいのですが、なかなかうまくいきません。。。 どなたか、ご指導のほど宜しくお願いいたします。 (befor) $html = '<a href="/files/aaaa.pdf">あ</a><br>' . '<a href="/files/cccc.html">い</a><br>' . '<a href="/files/dddd.doc">う</a><br>' . '<a href="/files/eeee.xls">え</a><br>' ; (after) $html = '<a href=download.php?url=/files/aaaa.pdf>あ</a><br>' . '<a href="/files/cccc.html">い</a><br>' . '<a href=download.php?url=/files/dddd.doc>う</a><br>' . '<a href=download.php?url=/files/eeee.xls>え</a><br>' ;

    • ベストアンサー
    • PHP
  • 検索結果へのリンク

    http://z.rash.jp/sample20.php 上記URLで紹介されているreflexa Web APIを利用したPHPの プログラムを実行した後に表示される検索結果にリンクを貼りたい のですが初心者過ぎてよく分かりません。どなたかご教授頂けると 本当に助かります・・。 (現状の検索結果の例) ラーメン<br />豚骨<br />こってり<br />中華そば・・・・・ (希望するの検索結果) <a href="http://hoge.com/search?word=ラーメン" target="_blank">ラーメン</a><br /> <a href="http://hoge.com/search?word=豚骨" target="_blank">豚骨</a><br /> <a href="http://hoge.com/search?word=こってり" target="_blank">こってり</a><br /> <a href="http://hoge.com/search?word=中華そば" target="_blank">中華そば</a><br /> ・ ・ ・ ・ ど素人ですみません。

    • ベストアンサー
    • PHP
  • PHPリンク

    <?php $num = intval($_POST["id"]); if ($num == 3964785) { <a href="http://nakuranet.com"></a> } else { echo '認証失敗'; } ?> とした場合にエラーが出ます。 認証成功者にのみ、指定ページに飛ばしたいのですが、PHPでリンク先を指定したい場合は、<a>タグは使えないのでしょうか?

    • ベストアンサー
    • PHP
  • <a href>タグ内のURL抽出

    正規表現初心者です。ご教授よろしくお願いします。 <a href=http://hoge.com/hoge>hoge</a> <a href=http://hoge.com/hoge>hoge<br>hoge</a> 以上の<a href>リンクから、それぞれURLだけを抽出したいのですが うまくできません。 ereg("<a href=(.+)>(.+)</a>",$hoge,$a); echo $a[1]; で、1つ目はURL抽出できたのですが 2つ目のように<br>があると『 http://hoge.com>hoge 』と表示されてしまいます。 このような場合、どのようにして抽出すればよいのでしょうか??

    • ベストアンサー
    • PHP