我有一个非常基本的CMS,我将它与PHP和MySQL放在一起。一切都很好,除了我找不到一种方法来使textarea字段能够包含多个段落(例如博客文章,详细的服务描述)。数据存储在MySQL中,段落之间有<br>
s,但当我将其调回以显示时,所有中断都将被删除。 PHP中没有任何内容可以提取html(没有修改html实体,更换字符串等)理想情况下,我可以将光标包装在<p></p>
中,就像我现在输入的textarea一样确实
今天我一直在尝试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插件可以处理它的表单,但我还没找到。非常感谢提前。
答案 0 :(得分:0)
您的用户是否输入了段落标签,或者您是否想要所见即所得风格?如果它是前者,你应该没有问题(如果你这样做,你可以在它进入之前只有htmlentities()并在你获取它时进行解码)。如果是后者,我会处理$ _POST ['thetest']字符串,因为它会在将它放入您的数据库之前返回给您。你可以在存储之前用<p>
和</p>
preg_replace()你的换行符,当然还有更多换行符,以使其可读。
或者您可以使用<pre>
作弊只是为了保留空白区域,但这不会在语义上负责:p
答案 1 :(得分:0)
尝试使用nl2br(htmlspecialchars(stripslashes($paragraphs)))
,它会准确输出用户输入的文字。