質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

7656閲覧

PHP:簡易掲示板の編集番号を指定して、掲示板の入力フォームに表示させる方法

u835113b

総合スコア13

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/09/05 04:47

編集2016/09/05 06:19

###前提・実現したいこと
「指定した番号のものだけ編集できるようにする。」
a.入力フォームとは別に、編集番号指定用フォームを用意する。項目は編集対象番号。
b.POST送信にて編集番号を送信する。その際if文で編集フォームから値が送信された場合のみの処理に分岐させておく
c.fileで配列化して読み込み、ループさせる
d.explodeを使って投稿番号を取得する
e.各投稿番号とPOSTで送信された編集番号を比較し、イコールの時の配列値を取得する
f.(1)で用意した入力フォームに、取得した配列値を入力済み状態で表示させる.

わからないのは、fの問題です。
###発生している問題・エラーメッセージ

発生している問題 表示させたい、言葉がformにでない。 ###該当のソースコード PHP [keiji_1.php] <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>簡易掲示板</title> </head> <body> <form action="keiji_2.php" . "" method="post"> 名前:<br/> <input type="text" name="name" size="30" value="<?php echo $edit_data;?>" /><br /> #ここに表示させたい。 コメント:<br/> <input type="text" name="comment" size="30" value=""/><br /> <br /> <input type="submit" name="make"> </form> <form action="keiji_2.php" . "" method="post"> 削除したい番号を入力してください:<br/><br/> <input type="text" name="name2" size="30" value=""/><br /> <input type="submit" name="del"> </form> <form action="keiji_2.php" . "" method="get"> 編集したい番号を入力してください:<br/><br/> <input type="text" name="name3" size="30" value=""/><br /> <input type="submit" name="edit"> </form> <?php $file_name = "keiji_2.txt"; $ret_array = file($file_name); for($i = 0;$i <count($ret_array); ++$i){ $piece = explode("<>", $ret_array[$i]); for($j = 0; $j < 4; ++$j){ echo ($piece[$j]); } echo "<br />\n"; } ?> </body> </html> [keiji_2.php] <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> </head> <body> <?php $dataFile = "keiji_2.txt"; if(isset($_POST['make'])) { $str = (sizeof(file($dataFile))+1) . '<>' . $_POST['name'] . '<>' . $_POST['comment'] . '<>' . date('m/d/H:i') . "\n"; $fp = fopen('keiji_2.txt','a'); fwrite($fp, $str); fclose($fp); } if (isset($_POST['del'])) { $str2 = ($_POST['name2'] . "\n"); $fp = fopen('keiji_4.txt','a'); fwrite($fp, $str2); fclose($fp); $file_make = file("keiji_2.txt"); for($k = 0;$k <count($file_make); ++$k){ $delData = explode("<>",$file_make[$k]); if($delData[0] == ($_POST['name2'])) { array_splice($file_make, $k, 1); file_put_contents($dataFile, implode("\n", $file_make)); echo ($_POST['name2'] . "は削除しました。"); } } } if (isset($_GET['edit'])) { $file_edit = file("keiji_2.txt"); for($l = 0;$l <count($file_edit); ++$l){ $editData = explode("<>",$file_edit[$l]); if($editData[0] == ($_GET['name3'])) { $edit_data = $file_edit[$l]; #表示させたい変数 echo ($_GET['name3'] . "は編集されました。"); echo ($edit_data); } } } ?> </body></html>

###試したこと
formmタグのvalue属性に編集したい投稿の配列を変数として、代入した。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kunai

2016/09/05 05:42

コードブロックは、ファイル毎に分けていただけますか。 あと、keijiban_2.phpなのかkeiji_2.phpなのか、そもそもこの2つは別のファイルなのか等よくわかりません。
u835113b

2016/09/05 06:15

汚い投稿で申し訳ありませんでした。編集しましたので、よろしくお願いします。
guest

回答1

0

keiji_1.phpの構成が、

HTML
PHP

となっている時点でどうあがいても実現できません。

PHP
HTML

となるように構成変更するとよいと思います。
つまり最初にPHPで処理した結果を変数に保持しておいて、HTML内で表示させるということです。

投稿2016/09/05 05:46

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問