我正在创建一个用户可以登录的网站,并在表单字段中写入或粘贴文本,如此
<textarea name="descr" id="descr" class="textformfront" rows="24" cols="50" required onFocus="cleari();"></textarea>
文本保存在数据库中(postgreSQL 9.1扩展为PostGIS 2.0)。 DB中列的数据类型是“text”。然后文本显示在前端,在div
中如此
<div id="formdescr" style="overflow-y:auto; height:400px; width:100%;"></div>
我的问题是,如果用户在表单中插入长文本,带有段落和分隔符,则在div
中不显示任何内容。在div
中,我看到的是一个连续的文本,没有中断,没有段落。
我该如何解决这个问题?
感谢。
更新
我使用nodejs 0.10.12 / websockets从DB传输到浏览器,从浏览器传输到DB。我将文字放在div
中document.getElementById("formdescr").innerHTML=descr;
,其中descr
来自客户端的websockets。在源代码中,我看不到文字。用户必须先搜索,然后div
才能获得文字。
答案 0 :(得分:2)
您的问题是浏览器会忽略内容中的空白区域。多个空格和新行全部折叠到渲染输出中的一个空格中。
如果要保留所有原始格式,包括缩进和换行符,可以将文本输出到该div内的<pre>
块中。
您的另一个选择是将空白区域编码为html实体。使用<br>
表示换行符,使用
表示应保留的空格。
答案 1 :(得分:0)
您的解决方案很可能取决于您使用的后端编程语言,而不是数据库。如果您使用php,我想this应该回答您的问题(如果没有,您应该能够进行转移;-))