我有一个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']);
}
?>
OP似乎再次显示<textarea>
内容,而没有再次使用<textarea>
。使用CCD_ 3是正确的。
解决方案是改变:
echo $comment;
进入:
echo str_replace(array("'t"," "),array(" "," "),nl2br(htmlspecialchars($comment)));
编辑
我看到你在获得$comment
时使用了mysql_real_escape_string();
。在此处删除mysql_real_escape_string()
,并且仅当您要使用其他mysql_*
函数时才将其放置。
mysql_real_escape_string()
把你的新线路搞砸了。
使用echo nl2br($textarea)
。它在每一个有换行符(换行符(的点添加一个br
标记