我将它从textarea插入数据库:
Hello
How
Are
You
它会像这样保存:
Hello\n\nHow \n\nAre \n\nYou
但是当我通过nl2br
将其显示在textarea中后,它仍会显示为Hello\n\nHow \n\nAre \n\nYou
。如何使其显示方式与将其插入数据库的方式相同?
这是我用来获取值的jQuery代码:
var getURL = WEBROOT + "index.php/Connection/getConfig/" + rowID;
var editConfig = $("<div>");
editConfig.load(getURL, function(){
var configValue = $(this).html();
console.log(configValue);
var button = $("<button>", {
html: "submit"
}),
textArea = $("<textarea>",{
width: "350px", height: "600px"
}).val(nl2br(configValue));
$(this).text("").append(
textArea,
$("<br/>"),
button
).dialog({
title: "Editing Config for id " + rowID,
modal: true,
width: 405
});
});
答案 0 :(得分:3)
(升级到答案)
听起来您将字符序列\n
存储在数据库中,而不是由转义码表示的实际换行符。在这种情况下nl2br
不会有任何区别(它会替换HTML <br/>
标记的实际换行符,这甚至不是您想要的<textarea>
中的换行符}) - 您需要改为使用stripcslashes
。
但是,我建议修复数据库中的数据,以便不转义其内容。
答案 1 :(得分:0)
您无法格式化文本区域中的文本。您可以使用div代替。使用str_replace()替换“\ n”
答案 2 :(得分:0)
这可能不是正确的做法,但在将\n
存储在表格中之前,您始终可以使用<br>
将str_replace
替换为{{1}}。然后,您只需输出消息,所有内容都将正确格式化。
答案 3 :(得分:0)
nl2br将换行符转换为br html标记,你不能只在div中渲染textarea中的html。如果你想显示带换行符的文字,那么最好使用Tiny-Mce http://www.tinymce.com/tryit/full.php,这样就可以轻松实现
答案 4 :(得分:0)
我不认为您使用echo nl2br($var)
来显示textarea内部。原因是,如果你这样做,那么\r\n
就会变成<br/>
而你会看到
Hello<br/>How <br/>Are <br/>You
使用以下代码显示textarea内部:
echo $var
使用以下代码显示外部textarea,即表格单元格或DIV等。
echo nl2br($var)
答案 5 :(得分:0)
我把它放在一个新的HTML文件中:
<form>
<textarea>
abc
def
123
</textarea>
</form>
要将换行符放入文本区域,不应使用<br>
- 而应使用强硬回报。你有PHP脚本输出"\n"
到浏览器,看看会发生什么。