Несколько абзацев в одном поле формы - Jquery добавляется при нажатии клавиш - PullRequest
1 голос
/ 16 мая 2011

У меня есть очень простая CMS, которую я собрал вместе с PHP и MySQL. Все отлично работает, за исключением того, что я не могу найти способ сделать текстовые поля способными содержать несколько абзацев (например, сообщения в блоге, подробные описания услуг). Данные хранятся в MySQL с <br> s между абзацами, но когда я перезваниваю для отображения, все разрывы удаляются. В PHP нет ничего, что могло бы вытащить html (без обрезки html-сущностей, замены строк и т. Д.). В идеале я бы смог обернуть курсор в <p></p>, как это делает текстовая область, которую я сейчас набираю.

Сегодня я пробовал JQuery.

<script type="text/javascript">
$(document).ready(function(){
$('#thetest').keydown(function(event) {
if (event.keyCode == '13') {
    $('#thetest').append('<p>Test</p>');
});
});
</script>

<form action="test_upload.php" enctype="multipart/form-data" method="POST">
<p>Content: </p>
<textarea wrap="virtual" id="thetest" name="thetest" value="" 
autocomplete="off" rows="20"cols="100">
</textarea>
<input type="submit" name="submit" value="Upload" />
</form>

Если бы кто-нибудь мог указать мне правильное направление, я был бы очень признателен. Я думаю, что был бы плагин jquery для форм, который бы справился с этим, но я не нашел его. Заранее большое спасибо.

Ответы [ 2 ]

0 голосов
/ 12 июля 2012

Попробуйте использовать nl2br(htmlspecialchars(stripslashes($paragraphs))), он выведет текст в точности так, как его вводит пользователь.

0 голосов
/ 17 мая 2011

Ваши пользователи вводят теги абзаца или вы хотите использовать стиль WYSIWYG?Если это первое, у вас не должно быть проблем (и если вы это сделаете, вы можете просто htmlentities () его, прежде чем он войдет и декодировать, когда вы получите его).Если это последнее, я обработал бы строку $ _POST ['thetest'] так, как она вам возвращается, прежде чем поместить ее в вашу базу данных.Вы можете preg_replace () ваши символы новой строки с <p> и </p> перед сохранением, с большим количеством символов новой строки, чтобы сделать его читабельным, конечно.

Или вы можете обмануть с <pre> только для сохранения пробела, но это не будет семантически ответственным: p

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