質問: ○前提・実現したいこと phpをベースにした簡易口コミサイトを作成中なのですが、現在その中で投稿内容の編集や削除を可能とする管理者ページの作成に取り掛かっています。 (データはMySQL上に保存しており、ログイン・新規登録・新規投稿・ホームのページは既に作成済みです。) 管理者ページを作成する上で、そこには投稿内容のデータを並べ、投稿ごとに削除・編集ボタンを実装して、そのボタンを押すことで削除・編集のそれぞれのページを開くという形にしたいと考えています。 ○発生している問題・エラーメッセージ 投稿ごとに編集ボタンを実装する予定で、編集ページを開いた際にテキストボックスに投稿内容をテキストボックスにvalueを使って入れたいのですが、その際のデータはどう条件分岐をすれば、押された編集ボタンのデータを入れられるのでしょうか? ○該当のソースコード 〜〜〜 \" >"." ".$row['id'].''; if(empty(($_POST['edit'])&&($_POST['nolook']))){ echo $_POST['nolook']; } ?> ○試したこと 試しに管理者ページにおいて、編集ボタンのフォームにhiddenでデータのidを入れてみたのですが、hiddenの値が取得できません。(値は何かしら入っているようなのですが、、) hiddenの値で、編集ページに表示するデータを指定したいと思っています。(なのでこのページにhiddenの値は表示する必要はないのですが、値に何が入ってるのか確認する為に下のif文は書いています。) 現在のやり方または〜を使ったやり方を教えていただきたいです。 よろしくお願い致します。
回答: 簡素にするために、一本のphpで表示用と編集用を兼ねず、 それぞれ分けて作ればデバッグしやすいですよ。 示されたコードが今ひとつピンときませんが、 例えばこういう書き方もできます: ``` foreach ($results as $row) { echo << {$row['id']} EOT; if (empty(($_POST['edit']) && ($_POST['nolook']))) { echo $_POST['nolook']; } } ?> ``` PHP: 文字列 - Manualにある 「ヒアドキュメント構文」を駆使すると、 シングルクォーテーションとダブルクォーテーションの入れ子で混乱せずきれいにかけます。 提示した例で行くと、EOTが出現するまでの部分をそのままechoするわけですが、 {~}でくくったところのphp変数が展開される形になっています。 こういう構造のhtmlコードを出力したい、ってときに重宝します。