【问题标题】:Data from textarea with line breaks to database带有换行符的文本区域中的数据到数据库
【发布时间】:2016-04-05 12:53:14
【问题描述】:

我有一个简单的文本区域。单击保存按钮后,我使用角度控制器保存该数据。然后,一旦单击更新按钮,我就会更新该数据库中的一行,其中一个行字段是来自该 textarea 的数据。

到目前为止一切顺利,更新完成,当我在文本区域中换行时问题就开始了,例如,我输入:

“嗨,↵这是另一行”

我检查了该数据,当我将其保存在控制器中时,当我从服务器取回它时,它看起来像这样:“嗨,↵这是另一行”。

看起来不错,但是当我将它放在 div 中时,我得到以下信息:

“嗨,这是另一行”

换行符去哪儿了?为什么不显示?

我尝试了很多事情,比如将换行符更改为<br>,一旦发送到数据库,然后将其切换回换行符,似乎没有任何效果。

【问题讨论】:

  • Html 的呈现方式默认情况下所有空格都替换为一个空格,除了 pre 标签和 textarea 内部。

标签: javascript php html mysql angularjs


【解决方案1】:

好的 - 您需要做的是使用 white-space:pre-wrap; 来显示数据库中的数据。

例子:

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

【讨论】:

    【解决方案2】:

    只需使用这个

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

    【讨论】:

      【解决方案3】:

      您可以在进出时以编程方式更改以&lt;br /&gt; 标记结尾的\n 行。通过使用准备好的语句,可以为您处理使用诸如 real_escape_string 之类的需求。

      也就是说,从长远来看,使用@itamar 的方法可能会更好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-09
        • 2013-08-19
        • 2022-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多