【问题标题】:How to save user-entered line breaks from a TextArea to a database?如何将用户输入的换行符从 TextArea 保存到数据库?
【发布时间】:2021-03-30 12:57:59
【问题描述】:

如何将用户输入的换行符从<textarea> HTML 元素保存到数据库中?
它总是删除换行符。

【问题讨论】:

  • 哪个数据库,数据库中的数据类型,您如何插入数据,数据如何在数据库的本机工具中显示,您认为没有嵌入式换行符还有其他原因吗?

标签: html


【解决方案1】:

TextArea HTML 元素正在保留数据库中的空白。
尝试在网络浏览器上显示\n 时出现问题,这将失败。

要在网络浏览器中显示\n,请使用:

<p style="white-space: pre-line">multi-line text</p>

【讨论】:

  • @hakan-fistik 效果很好,但所有文本的第一行都有换行符。为什么呢?怎么去掉?
  • 是的,它对我有用。非常感谢您的分享。
【解决方案2】:

显示内容时需要将换行符转换成&lt;br /&gt;标签,否则浏览器不会显示。这可能就是你认为他们没有得救的原因。如果您使用的是 PHP,请使用 nl2br() 函数来执行此操作。在其他语言中,您可以进行字符串替换,将所有出现的"\n" 替换为"&lt;br /&gt;"

【讨论】:

  • 您应该澄清您的意思是“在
  • 您也应该包括 Lode Alaert 的解决方案。有时
     标签就是你想要的。
【解决方案3】:

只需将输出文本放在&lt;pre&gt;&lt;/pre&gt; 标记之间,这将保留换行符。

【讨论】:

  • 或者在 CSS 元素中添加 white-space: pre-line
  • CSS white-space: pre-line; 选项是最好的,因为
     标签不换行文本。 
     具有 white-space: pre; 的默认样式,我认为在这种情况下不需要。
【解决方案4】:

我刚学会使用 php 的 nl2br 函数,它对我来说很好用。 我正在使用它来设置我的用户在从其他用户发送电子邮件时如何接收电子邮件的样式。

【讨论】:

    【解决方案5】:

    根据经验,我知道浏览器文本区域的表现不如人们希望的那么好,尤其是在换行方面。

    您可以查看 javascript 是否能够在将文本发送到服务器之前询问文本区域并找到换行符,从而以更格式的方式发送数据。但是在多个浏览器上进行这项工作所需的 javascript 调试量可能不值得付出努力。

    也许您应该说您尝试捕获数据的格式。与跟踪换行符相比,获取数据可能有更好的方法——尽管换行符似乎很容易在用户输入中捕获。

    【讨论】:

      【解决方案6】:

      您的问题将使用“空白”属性解决:只需使用:

      &lt;textarea name="description" id="description" style="white-space: pre-wrap;"&gt;&lt;/textarea&gt;

      然后继续你的工作。

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      【解决方案7】:

      我注意到如果 textarea 位于 html 表单中,则可正常保存的易碎内容。但是,如果我使用没有任何形式的 textarea 并尝试在其中编辑长文本,插入换行符并通过 ajax 保存内容,它将作为合并文本保存到数据库中

      【讨论】:

        【解决方案8】:

        使用 PHP nl2br() 函数将数据从 textarea 保存到数据库 如下所示

        <textarea 
            name="PostContent" 
            class="form-control" 
            rows="12" cols="30"
            id="PostContent" 
            required=""
            style="white-space: pre-wrap; text-indent: 50px;"
            >
        </textarea>
        
        $PostContent=$_POST["PostContent"];
        $output =nl2br($PostContent);
        

        使用$output 变量保存到数据库

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-24
          • 1970-01-01
          • 1970-01-01
          • 2014-06-22
          • 2012-10-01
          • 2017-05-21
          • 2015-04-25
          相关资源
          最近更新 更多