簡體   English   中英

textarea標記中的新行

[英]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("&nbsp;&nbsp; &nbsp;","&nbsp;&nbsp;"),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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM