文本框中带有换行符的数据如何存入数据库?

3
我有一个简单的文本区域。一旦点击保存按钮,我使用Angular控制器保存该数据。然后,一旦点击更新按钮,我更新数据库中的一行数据,其中一个字段是来自该文本区域的数据。
到目前为止还不错,更新完成得很好,问题在于当我在文本区域中换行时,例如,我输入:
"Hi,↵This is another row"
我检查了那个数据,当我在控制器中保存它并从服务器获取它时,它看起来像这样:"Hi,↵This is another row"。
看起来没问题,但当我将其放在div中时,我得到以下结果:
"Hi,This is another row"
换行符去哪了?为什么它没有显示?
我尝试过很多方法,比如在发送到数据库之前将换行符更改为<br>,然后再将其切换回换行符,但似乎都没有效果。

1
默认情况下,HTML 以一种方式呈现,即所有空格都被一个空格替换,除了 pre 标签和 textarea 内部。 - jcubic
3个回答

4

好的 - 你需要做的是在显示来自数据库的数据时使用 white-space:pre-wrap;

例如:

<?php
echo '<p style="white-space:pre-wrap;">'.$yourVarWithWhiteSpace.'</p>';
?>

1
只需使用此

<?php
echo '<p>'. nl2br($yourVarWithWhiteSpace).'</p>';
?>

0

您可以通过编程方式在输入或输出时使用<br />标签来更改换行符。使用预处理语句可以为您处理类似于real_escape_string的需求。

话虽如此,长期来看,使用@itamar的方法可能更好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接