2017-10-05 8 views
-1

フォーラムを作成中です。私は、私のPHP、MySQL、JavaScriptの知識をテストするためにチュートリアルなしでこれをやっています。それはうまくいっていますが、問題が1つ遭遇しました。"encodeURIComponent"がHTML改行を改行記号に変換しないようにします。

私はencodeURIComponent()を使って投稿されたフォーラムのテキストをサニタイズしてからajax PHP、そして最後にMySQLに至るまでです。私はこれが新しい行をリテラルの復帰記号(下向き矢印と左向き矢印)に変更することに気づいた。

このフォーラムのテキストがajaxリクエストによってデータベースから返されると、私はこのシンボルをコンソールウィンドウで見ることができますが、javascriptは単にそれを無視します。

このシンボルを認識させるにはどうすればよいですか?あなたはそのための<p></p><br/>を使用するように意図されているので、

Image of the console window

Image of the output HTML

+0

Javascriptで無視してもよろしいですか?それはしないでください。しかし、HTMLはそうです。あなたはそれを意味しましたか? – SourceOverflow

+0

「Elements」タブを見ると、キャリッジリターンシンボルはコンソール上の新しい行に変換されますが、HTMLは単純に無視されているようです。これを防ぐ方法はありますか? – Maxmansung

+0

いいえ、回避策があります(私の答えを参照してください) – SourceOverflow

答えて

0

HTMLは常に、キャリッジリターンを無視しています。

問題を解決する最も簡単な方法は、すべてのキャリッジリターンを改行し直すことです。 PHPでstr_replaceを、JavaScriptでstr.replaceを使用できます。

+0

すごくいいです、PHPやjavascriptで復帰記号がどうなっているのか分かりませんか?それはHTMLで "&#13"ですか? – Maxmansung

+0

通常は '\ n'ですが、それが自動的に両方のウィンドウとLinuxのリターンを認識するかどうかはわかりませんが、私はそれが正しいと思います。 (もしそうでなければ、誰も見ない余分なシンボルを^ ^)私が正しく覚えていれば、 "キャリッジリターンとリセット"は '\ n \ r'ですが、それは保証されません – SourceOverflow

関連する問題