首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >textarea标记中的新行

问textarea标记中的新行
EN

Stack Overflow用户
提问于 2014-05-31 18:01:56
回答 2查看 739关注 0票数 0

我有一个textarea标记,在其中插入带有新行的文本。e:g像这样:

代码语言:javascript
复制
abc
def
ghi

提交表单后,我将序列化所有表单值,包括此textarea字段。

问题是,当我试图显示这个值(echo $textarea)时,它给出的输出没有新的行。ie:

代码语言:javascript
复制
abc\r\ndef\r\nghi\r\n

有人知道这里有什么问题吗?

这是我的代码,我正在用jquery提交我的表单

代码语言:javascript
复制
<script>
$(document).ready(function(){
var form = $('form');
var submit = $('#submit');
form.on('submit', function(e) {
e.preventDefault();  
$.ajax({
  url: 'comment.php',
  type: 'POST',
  cache: false,
   data: form.serialize(),     
  success: function(data){
    var item = $(data).hide().fadeIn(800);
    $('.section').prepend(item);  
  },
  error: function(e){
    alert(e);
  }
 });
 });
 });
</script>

下面是我试图显示数据的代码

代码语言:javascript
复制
<div class="comment">
<div class="comment1">
<h3><?php echo $name ?> <span>said....</span></h3>
<p><?php echo nl2br($comment)?></p>
</div>
</div>

以下是我如何获得$comment

代码语言:javascript
复制
<?php
if (isset( $_SERVER['HTTP_X_REQUESTED_WITH'] )):
include('./connection.php');
if (!empty($_POST['name']) AND !empty($_POST['textarea']) ) {
$name = mysql_real_escape_string($_POST['name']);
$comment = mysql_real_escape_string($_POST['textarea']); 
}
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-31 18:29:50

它显示OP再次显示<textarea>内容,而没有再次使用<textarea>。使用nl2br()是正确的方向。

解决办法是改变:

代码语言:javascript
复制
echo $comment;

转入:

代码语言:javascript
复制
echo str_replace(array("\t","  "),array("&nbsp;&nbsp; &nbsp;","&nbsp;&nbsp;"),nl2br(htmlspecialchars($comment)));

编辑

我看到您在获取mysql_real_escape_string();时使用$comment。在这里删除mysql_real_escape_string(),并将其放在要使用其他mysql_*函数的时候。

mysql_real_escape_string()把你的新台词搞砸了。

票数 0
EN

Stack Overflow用户

发布于 2014-05-31 18:11:55

使用回波nl2br($textarea)。它在有换行符的每一点添加一个br标记(换行符要中断)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23973435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档