Не сохраняется разрыв строк при заносе данных в textarea средствами JS

NilovSerge

Новичок
Не сохраняется разрыв строк при заносе данных в textarea средствами JS

Всем привет
У меня есть коментарии и возле него кнопка "ответить на цитату" при нажатии на которую
берется текст из выбранного коментария и заносится в textarea и в начале каждой строки ставится ">>"
Проблема в том что мне не удается сохранить разрыв строк В скрипте на php я пишу так:
<a class=\"neact\" href=\"javascript:AnswerNewsCommentWithQuote( ".$NewsComment["ID"].", '".str_replace("\r\n","\r\n>>",$NewsComment["Body"])."' )\">

То есть все "\r\n" меняются на "\r\n>>" и получаю такой выходной HTML:
<a class="neact" href="javascript:AnswerNewsCommentWithQuote( 83, '111
>>222
>>333' )">Ответ на цитату </a>

И при вставке строки в AnswerNewsCommentWithQuote я получаю что в передаваемой строке нет символов \r \n и при присвоении строки textarea:
document.getElementById("NewsCommentText").value= Text ;(или innerHTML)

нет разрыва строки
Если в textarea освавить первоначальные данные построчно :<textarea id="NewsCommentText" name="NewsCommentText" cols="50" rows="8" class="fild">
>>111
>>222
333</textarea>
То эти строки нормально разносятся построчно...
Как это можно побороть?
 

FB3

Новичок
Думаю, что виноват JavaScript, он пробелы и переносы по своему воспринимает. Попробуй так:
<a class=\"neact\" href=\"java script:AnswerNewsCommentWithQuote( ".$NewsComment["ID"].", '".str_replace("\r\n","\\r\\n>>",$NewsComment["Body"])."' )\">

Слэши удвоил в заменяемой строке, соответственно должно получиться так:
<a class="neact" href="java script:AnswerNewsCommentWithQuote( 83, '111\r\n>>222\r\n>>333' )">Ответ на цитату </a>
 

kruglov

Новичок
В javascript перевод строки - это конец одной программной строки и начало другой. Применяйте замену на \n (как это делает mysql_real_escape_string, к примеру) либо пишите \ перед переводом строки.

Т.е. '111\
>>222\
>>333'
 
Сверху