前提・実現したいこと
1<>高瀬<>こんにちわ<>2019-05-11<>
2<>山田<>こんにちわ<>2019-05-11<>
3<>田中<>こんにちわ<>2019-05-11<>
test.txtというファイルにこの三行があり、簡易掲示板での編集機能の実装が上手く行かず困っています。
a.入力フォームとは別に、編集番号指定用フォームを用意する。項目は編集対象番号。
b.POST送信にて編集番号を送信する。その際if文で編集フォームから値が送信された場合のみの処理に分岐させておく
c.fileで配列化して読み込み、ループさせる
d.explodeを使って投稿番号を取得する
e.各投稿番号とPOSTで送信された編集番号を比較し、イコールの時の配列値を取得する
f.元々あった普通の入力フォームに、取得した配列値を入力済み状態で表示させる
g.その値をPOSTで送信して編集を行うが、編集かどうかわかるように<input type="hidden">タグを用いて、編集モードかどうかを判別する
h.編集内容の値が送信されたら、同じくc~dの処理を行い、eと同じように番号の比較を行って、イコールの時に配列値を取得するのではなく送信された値と差し替える
i.差し替えた配列をテキストに上書き保存する
発生している問題・エラーメッセージ
hの配列値を取得するのではなく送信された値と差し替える、送信された値と差し替えるというところでつまずいています。
プログラミングを初めてまだ1ヶ月ほどで、hの文章の意味もイメージできていません。
該当のソースコード
<?php if(isset($_POST["edit"])) { $filename = "test.txt"; $file = file($filename); $edit = $_POST["number"]; for($i = 0; $i < count($file); $i++) { $edit_number = explode("<>",$file[$i]); if($edit_number[0] == $edit) { $data = $edit_number[0]; } } } if(isset($_POST["normal"])) { if($_POST["edit_post"]) { $file = file("test.txt"); $edit = $_POST["edit_post"]; for($j = 0; $j < count($file); $j++) { $edit_number = explode("<>",$file[$j]); if($edit_number[0] == $edit) { } } } } ?> <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>課題</title> </head> <body> <form action="" method="POST"> <input type="hidden" name="edit_post" value="<?php echo $data; ?>"> <input type="text" name="name" value=""> <textarea name="comment" rows="4" cols="40"></textarea> <input type="submit" name="normal" value="送信"> </form> <form action="" method="POST"> 編集したい番号を入力<input type="text" name="number" value=""> <input type="submit" name="edit" value="送信"> </form> </body> </html>ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー