2014-05-31 4 views
0

У меня есть тег textarea, в который я вставляю текст с новыми строками. е: г, как это:Новая строка в теге textarea

abc 
def 
ghi 

После отправки формы, я сериализации всех значений формы, включая это поле TEXTAREA.

проблема заключается в том, что когда я пытаюсь отобразить это значение (echo $ textarea), он дает выход без новых строк. т.е.:

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

Может ли кто-нибудь понять, в чем проблема?

здесь мои code.I я мою форму завершения заполнения с 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> 

здесь является то, как я адресности долл. США

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

Предполагая, что вы говорите о браузере, вам понадобится 'nl2br()', поскольку все белые пробелы, включая новые строки, сводятся к одному пространству в браузере. Он будет отображаться правильно, как и в вашем текстовом поле. – jeroen

+0

Я пробовал с nl2br ($ textarea), но не повезло – user3318980

+0

@ user3318980 Как вы сериализуете и де-сериализуете свои строки? После каждого шага вы должны вывести переменную 'var_dump()' переменной. – jeroen

ответ

0

Оказывается ОП, показывающий <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() испортил ваши новые линии.

+0

не работает mate..получает тот же вывод :( – user3318980

+0

это тоже не сработало. : e abc \ r \ ndef \ r \ nghi \ r \ n, преобразованный в abcrndefrnghirn – user3318980

+0

["\ r \ n" не имеет ничего общего с магическими кавычками ...] (http://en.wikipedia.org/wiki/Newline) – nietonfir

0

использовать эхо nl2br($textarea). Он добавляет br тег в каждой точке, что есть символ новой строки (перевод строки ломаться)

Смежные вопросы