【发布时间】:2021-03-30 12:57:59
【问题描述】:
如何将用户输入的换行符从<textarea> HTML 元素保存到数据库中?
它总是删除换行符。
【问题讨论】:
-
哪个数据库,数据库中的数据类型,您如何插入数据,数据如何在数据库的本机工具中显示,您认为没有嵌入式换行符还有其他原因吗?
标签: html
如何将用户输入的换行符从<textarea> HTML 元素保存到数据库中?
它总是删除换行符。
【问题讨论】:
标签: html
TextArea HTML 元素正在保留数据库中的空白。
尝试在网络浏览器上显示\n 时出现问题,这将失败。
要在网络浏览器中显示\n,请使用:
<p style="white-space: pre-line">multi-line text</p>
【讨论】:
显示内容时需要将换行符转换成<br />标签,否则浏览器不会显示。这可能就是你认为他们没有得救的原因。如果您使用的是 PHP,请使用 nl2br() 函数来执行此操作。在其他语言中,您可以进行字符串替换,将所有出现的"\n" 替换为"<br />"。
【讨论】:
标签就是你想要的。
只需将输出文本放在<pre></pre> 标记之间,这将保留换行符。
【讨论】:
标签不换行文本。具有 white-space: pre; 的默认样式,我认为在这种情况下不需要。
我刚学会使用 php 的 nl2br 函数,它对我来说很好用。 我正在使用它来设置我的用户在从其他用户发送电子邮件时如何接收电子邮件的样式。
【讨论】:
根据经验,我知道浏览器文本区域的表现不如人们希望的那么好,尤其是在换行方面。
您可以查看 javascript 是否能够在将文本发送到服务器之前询问文本区域并找到换行符,从而以更格式的方式发送数据。但是在多个浏览器上进行这项工作所需的 javascript 调试量可能不值得付出努力。
也许您应该说您尝试捕获数据的格式。与跟踪换行符相比,获取数据可能有更好的方法——尽管换行符似乎很容易在用户输入中捕获。
【讨论】:
您的问题将使用“空白”属性解决:只需使用:
<textarea name="description" id="description" style="white-space: pre-wrap;"></textarea>
然后继续你的工作。
【讨论】:
我注意到如果 textarea 位于 html 表单中,则可正常保存的易碎内容。但是,如果我使用没有任何形式的 textarea 并尝试在其中编辑长文本,插入换行符并通过 ajax 保存内容,它将作为合并文本保存到数据库中
【讨论】:
使用 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 变量保存到数据库
【讨论】: