• ベストアンサー

PHP初心者です。

簡単な日記帳を作成したのですが、タイトルをクリックしたときにその日記の内容を表示させたいのですが、どうすればよろしいでしょうか?自分なりにかなり調べてはみたのですが、何をどう調べればいいのかわかりませんでした。  今の状態ですが、一つのタイトルをクリックするとすべての内容が表示されてしまいます。1タイトルに1内容を反映させる方法をご教授お願い致します。

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

実際に試したわけではないので正しく動くかどうかわかりませんが、方針の参考にしてください。 >・日付などの記事を特定できるIDを引数に受けて、その日記記事だけを表示する機能を実装する view.phpの、 --- $kakikomi = explode("\t",$value); print $kakikomi[3]."<br>\n"; --- これを、 --- $kakikomi = explode("\t",$value); if (!isset($_REQUEST[date]) || $_REQUEST[date] === $kakikomi[1]) { print $kakikomi[3]."<br>\n"; } --- に。 (date を指定せずに view.php を表示した時は、「!$_REQUEST[date]」が真なので全記事を表示し date を指定した時は、「$_REQUEST[date] === $kakikomi[1]」で、date に指定した引数に該当する日の記事のみ表示、 というコードです) >・日記のタイトルからは、リンク先のURLを「○○.php?date=△△」のように、そのタイトルの記事を表示するURLにしておく index.php の、 --- print "<td><a href=\"view.php\">".$kakikomi[2]."</a></td>\n"; --- を、 --- print "<td><a href=\"view.php?date=".$kakikomi[1]."\">".$kakikomi[2]."</a></td>\n"; --- に。これで、各記事タイトルに張られたリンクは、リンク先URLとして view.php に日付を渡すようになります。 以上のような感じになるかと思います。

voluptuous1681
質問者

お礼

お伺いしたようにやってみたところ、考えていた通りに実行することが出来ました。大変感謝しております。お忙しいところありがとうございました。

その他の回答 (1)

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

・日付などの記事を特定できるIDを引数に受けて、その日記記事だけを表示する機能を実装する (たとえば、_REQUEST[date] を見て、内容が設定されている場合は、その日のデータを表示、 設定されていない場合は、最新n件表示、など ・日記のタイトルからは、リンク先のURLを「○○.php?date=△△」のように、そのタイトルの記事を表示するURLにしておく

voluptuous1681
質問者

補足

ありがとうございます。追加でお聞きしたいのですが、例文を載せていただけないでしょうか?ぎりぎりですがよろしくお願いいたします。 reg.php(ファイル1) <?php $err_msg = ""; if(isset($_POST["submit"])) { if(!strlen($_POST["title"])) { $err_msg[] = "タイトルが入力されていません。"; } if(!strlen($_POST["naiyou"])) { $err_msg[] = "内容が入力されていません。"; } if($err_msg) { $error = implode("<br>",$err_msg); $error_html = " <html> <head> <title>エラー</title> </head> <center> <body> <h4>エラー</h4> ".$error." </center> </body> </html>"; print $error_html; } else { $naiyou = nl2br($_POST["naiyou"]); $naiyou = str_replace("\n","",$naiyou); $naiyou = str_replace("\r","",$naiyou); $naiyou = str_replace("\r\n","",$naiyou); $id = $_POST["id"]; $fp = fopen("sample.txt","a+"); fwrite($fp,$id."\t".date("Y/m/dH:i:s")."\t".$_POST["title"]."\t".$_POST["naiyou"]."\n"); fclose($fp); $touroku = " <html> <head> <title>登録しました</title> </head> <center> <body> <h4>登録しました</h4> </center> </body> </html>"; print $touroku; } } else { ?> <html> <head><title></title></head> <body> <h4>フォーム</h4><p> <form action="reg.php" method="post"> タイトル:<br><input type="text" name="title" value=""><br><br> 内容:<br><textarea name="naiyou" rows="10" cols="35"></textarea><br> <input type="hidden" name="id" value=1><br><hr> <input type="submit" name="submit" value="登録"> </form></p></body></html> <?php}?> index.php(ファイル2) <?php if(file_exists("sample.txt")) { $filename = "sample.txt"; $array = file($filename); rsort($array); print "<table>\n"; foreach($array as $key=>$value) { $kakikomi = explode("\t",$value); print "<tr>\n"; print "<td><a href=\"view.php\">".$kakikomi[2]."</a></td>\n"; print "<td>".$kakikomi[1]."</td>\n"; print "</tr>\n"; } print "</table>\n"; } ?> view.php(ファイル3) <?php if(file_exists("sample.txt")) { $filename = "sample.txt"; $array = file($filename); rsort($array); foreach($array as $key=>$value) { $kakikomi = explode("\t",$value); print $kakikomi[3]."<br>\n"; } } ?>

関連するQ&A