textarea标签中的新行

时间:2014-05-31 18:01:56

标签: php jquery ajax

我有一个textarea标签,我在其中插入带有新行的文本。 e:g喜欢这个:

abc
def
ghi

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

问题在于,当我尝试显示此值(echo $ textarea)时,它会在没有换行的情况下给出输出。即:

abc\r\ndef\r\nghi\r\n

任何人都可以知道这里有什么问题吗?

这是我的代码。我用jquery

提交我的表单
<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>

这是我试图显示数据的代码     

<div class="comment">
<div class="comment1">
<h3><?php echo $name ?> <span>said....</span></h3>
<p><?php echo nl2br($comment)?></p>
</div>
</div>

这就是我如何制作$ comment

<?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']); 
}
?>

2 个答案:

答案 0 :(得分:0)

使用echo nl2br($textarea)。 它会在每个有新行(断行新行)

的点添加br标记

答案 1 :(得分:0)

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

解决方案是改变:

echo $comment;

成:

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()搞砸了你的新行。