如何将用户输入的换行符从TEXTAREA保存到数据库?每次我尝试,它都会删除换行符。
答案 0 :(得分:31)
显示内容时,您需要将换行符转换为<br />
标记,否则网络浏览器将不会显示它们。这可能就是为什么你认为他们没有得救。如果您使用的是PHP,请使用nl2br()功能执行此操作。在其他语言中,您可以执行字符串替换,将所有"\n"
替换为"<br />"
。
答案 1 :(得分:27)
纯CSS解决方案,不是特定于php的
在正常情况下,TextArea
HTML元素保留数据库中的空白区域。
尝试在Web浏览器上显示\n
时会出现问题,该问题将失败。
要在网络浏览器中显示\n
,请使用:
<p style="white-space: pre-line">multi-line text</p>
答案 2 :(得分:6)
我刚学会使用php的nl2br函数,它对我来说很好。 我正在使用它来设置用户在从其他用户发送电子邮件时收到电子邮件的方式。
答案 3 :(得分:2)
根据经验,我知道浏览器文本区域的表现不如人们想象的那么好,特别是关于换行符。
您可以查看javascript是否能够在文本发送到服务器之前询问文本区域并找到换行符,从而以更加格式化的方式发送数据。但是,在多个浏览器中进行此操作所需的javascript调试量可能不值得。
也许您应该说您尝试捕获数据的格式。可能有一种更好的方法来获取数据而不是跟踪换行符 - 尽管换行似乎在用户输入中捕获任何容易的东西。
答案 4 :(得分:1)
我注意到如果textarea在html表单中,则可以正常保存可破坏的内容。但是如果我使用没有任何形式的textarea并尝试编辑其中的长文本,插入换行符并通过ajax保存内容,它将作为合并文本保存到数据库中
答案 5 :(得分:1)
使用 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
变量保存到数据库
答案 6 :(得分:0)
这将有所帮助。
<textarea></textarea>
代替输入
<input type="text">
数据库将保留此内容。