MySql DBに登録されている文章の編集画面を作成したのですが(下記)、ブラウザで見ると、dbでは<br>で複数行文章が改行つきで登録されていますが、編集画面では改行されず、div内に1行で表示され全表示されません。どのようにすれば編集画面で改行表示されるのでしょうか? (なお、textareaにすると、DBの文章が引き込まれませんでした。) 初歩的な質問のような気がするのですが全くわからず投稿させていただきました。(・ω・;)どうぞよろしくお願いいたします。<(_"_)>

<?php
$sql = "select * from profile";
$result = mysqli_query($link, $sql);
while($data = mysqli_fetch_array($result)) {
echo "<input type='text' id='TextField' name='profile_input' value='".$data['profile_text']."'>";
}
?>

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:
  • 終了:2014/11/12 20:43:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:gizmo5 No.2

回答回数504ベストアンサー獲得回数141

ポイント60pt

input type=text は一行だけです。改行が効きません。
textarea は改行が効きますが、DB では <br> をつけて改行を表現しているということなので <br> がそのまま表示されてしまいます。
(textarea にデータを表示するには、①の回答のようにタグの中に記載します。)

preg_replace 関数などで、表示するときには br タグを改行文字に置き換えて表示。
データを登録するときには、逆に改行文字を br タグに変換してから DB を更新する。
というようなやり方が良いのではないでしょうか。

id:m0r1y055tan

gizmo5さん
ありがとうございます!おっしゃる通り、textareaタグ内に入れたら
brタグが表示されたので、教えられた通りpreg_replace 関数で置き換えたらbrタグが非表示になりました♬
preg_replace("/<br\W*?\/>/", "\n", $my_string)
これで今夜はぐっすり眠れます。(^-^) 大変助かりました☆

2014/11/12 20:45:01

その他の回答1件)

id:pogpi No.1

回答回数428ベストアンサー獲得回数59

ポイント40pt

<TEXTAREA>$data['profile_text']</TEXTAREA>
テキストエリアは、タグ内に書くんですよ。

id:m0r1y055tan

pogpiさん す、するどい!というか私がばかちんでした(@∀@;) タグではさむとなぜか編集モードにならないから<>内に入れたりいろいろやってるうちに混乱したみたいです。ご指摘ありがとうございました。"<( ^ v ^ )>" 後ほど配分させていただきます。

2014/11/12 20:12:06
id:gizmo5 No.2

回答回数504ベストアンサー獲得回数141ここでベストアンサー

ポイント60pt

input type=text は一行だけです。改行が効きません。
textarea は改行が効きますが、DB では <br> をつけて改行を表現しているということなので <br> がそのまま表示されてしまいます。
(textarea にデータを表示するには、①の回答のようにタグの中に記載します。)

preg_replace 関数などで、表示するときには br タグを改行文字に置き換えて表示。
データを登録するときには、逆に改行文字を br タグに変換してから DB を更新する。
というようなやり方が良いのではないでしょうか。

id:m0r1y055tan

gizmo5さん
ありがとうございます!おっしゃる通り、textareaタグ内に入れたら
brタグが表示されたので、教えられた通りpreg_replace 関数で置き換えたらbrタグが非表示になりました♬
preg_replace("/<br\W*?\/>/", "\n", $my_string)
これで今夜はぐっすり眠れます。(^-^) 大変助かりました☆

2014/11/12 20:45:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません