Как сохранить введенные пользователем разрывы строк из TextArea в базу данных? - PullRequest
34 голосов
/ 31 января 2009

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

Ответы [ 6 ]

31 голосов
/ 31 января 2009

При отображении контента вам нужно преобразовать разрывы строк в теги <br />, иначе веб-браузер их не отобразит. Наверное, поэтому вы думаете, что они не спасены. Если вы используете PHP, используйте для этого функцию nl2br () . На других языках вы можете заменить строку, заменив все вхождения "\n" на "<br />".

28 голосов
/ 08 февраля 2018

Чистое решение CSS, НЕ зависит от php
В обычных случаях HTML-элемент TextArea сохраняет пустое пространство в базе данных.
Проблема возникает при попытке отобразить \n в веб-браузере, что не удается.

Для отображения \n в веб-браузере используйте:

<p style="white-space: pre-line">multi-line text</p>
16 голосов
/ 23 ноября 2015

Просто поместите выводимый текст между тегами , чтобы сохранить разрывы строк.

6 голосов
/ 15 сентября 2013

Я только что научился использовать функцию php nl2br , и она отлично работает для меня. Я использую его для определения того, как мои пользователи получают электронную почту при отправке от другого пользователя.

2 голосов
/ 31 января 2009

По своему опыту я знаю, что текстовые области в браузере ведут себя хуже, чем хотелось бы, особенно в отношении разрывов строк.

Вы можете увидеть, сможет ли javascript опрашивать текстовую область и находить разрывы строк перед отправкой текста на сервер и, таким образом, отправлять данные в более хорошо отформатированном виде. Но объем отладки javascript, необходимый для работы в нескольких браузерах, вероятно, не стоит этих усилий.

Возможно, вам следует сказать, что формат вы пытаетесь захватить ваши данные. Возможно, есть лучший способ получить данные, чем отслеживать разрывы строк - хотя разрывы строк могут показаться чем-то простым, что можно записать при вводе пользователем.

1 голос
/ 13 ноября 2017

Я заметил, что разрушаемый контент сохраняется нормально, если textarea находится внутри html-формы. Но если я использую textarea без какой-либо формы и попытаюсь отредактировать длинный текст в нем, вставить разрывы строк и сохранить содержимое через ajax, он будет сохранен как объединенный текст в базе данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...