[英]New Line in textarea tag
我有一個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']);
}
?>
使用echo nl2br($textarea)
。 它在有換行符的每個點(要換行的新行)添加一個br
標簽。
看來OP再次顯示了<textarea>
內容,而沒有再次使用<textarea>
。 使用nl2br()
的方向正確。
解決方案是更改:
echo $comment;
變成:
echo str_replace(array("\t"," "),array(" "," "),nl2br(htmlspecialchars($comment)));
編輯
我看到您正在使用mysql_real_escape_string();
得到$comment
。 在這里刪除mysql_real_escape_string()
,僅在要使用其他mysql_*
函數時才放它。
mysql_real_escape_string()
弄亂了您的新行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.