2012-05-01 5 views
2

Когда я нажимаю enter в текстовом поле, он переходит к новой строке, но эта новая строка не отображается, когда текстовое поле отправляется. Как это сделать? Это должно быть просто, но из того, что я искал и попробовал, не удалось.Textarea: нажатие enter создает новую строку

<textarea style="{ white-space:pre; }"; name="texts" rows="3" cols="40"></textarea> 

$texts = $_POST['texts']; 
+1

Просьба указать соответствующий код. – Tibor

+0

Какой язык, Java или PHP? – nickb

+0

Я бы предпочел использовать PHP, чтобы он работал, но все, чтобы заставить его работать, прекрасно. –

ответ

1

Вероятно, проблема в том, что новая линия показывает вверх, но вы outputing как HTML, так что не сохраняет эту новую линию. Вам нужно преобразовать новые строки для разрыва тегов при выводе в виде html. Вы можете сделать это так:

//editing per comment advice. Apparently this method shouldn't be used since it doesn't replace all possible newline representations, although I dont remember having an issue with it. 
//$string = str_replace("\n", "<br />", $string); 
//as others mentioned, this is better and easier: 
$string = nl2br($string); 

Может быть, я недоразумение вопрос, но это то, что я взял от него.

+5

['nl2br()'] (http://php.net/nl2br), вероятно, предпочтительнее в этом случае. Edit: Не downvoter .. этот ответ определенно полезен :) –

+0

достаточно справедливо :) В чем разница, nl2br конвертирует \ r \ n? Изменить: nvm, прочитать документ. –

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