2011-05-16 29 views
1

我有一個非常基本的CMS,我已經將PHP和MySQL放在一起。一切都很好,除非我找不到讓textarea字段能夠包含多個段落的方法(例如,博客文章,詳細的服務描述)。數據存儲在MySQL中,段落之間爲<br>,但是當我將它回調顯示時,所有的中斷都被刪除。在PHP中沒有任何東西會拉出html(不修剪html實體,替換字符串等)。理想情況下,我可以將光標包裝到<p></p>中,就像我現在輸入的textarea一樣。在單表單字段中的多個段落 - jquery附加在keydown上

今天我一直在嘗試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插件來處理它的表單,但我沒有找到。首先十分感謝。

+1

你可以使用TinyMCE嗎? http://tinymce.moxiecode.com/ – captainclam 2011-05-16 19:06:50

+0

Textareas只能用'\ n'作爲換行符來保存純文本。使用像@captainclam建議的TinyMCE,或者與自己的可信度告誡相抗爭。 – DarthJDG 2011-05-16 21:48:20

回答

0

您的用戶是在段落標籤中輸入的,還是你想要它所見即所得的風格?如果它是前者,你就不應該有問題(如果你這樣做,你可以在進入之前調用htmlentities(),並在你獲取時進行解碼)。如果是後者,我會在將它放入數據庫之前處理$ _POST ['thetest']字符串。在存儲它之前,您可以使用<p></p>對您的換行符進行preg_replace(),並添加更多換行符以使其可讀。

或者你可以用<pre>欺騙只是爲了保持空白,但是這不會是語義上負責:對

+0

我的用戶沒有輸入任何標籤,我正在看所見即所得。自從發佈原始問題以來,我已經開始使用CKEditor Jquery插件並且它可以工作,但是我想知道如何執行這個任務來進行我自己的編程教育。我在換行符上嘗試了preg_replace(),但換行符不顯示。通過使用jquery追加keydown的麻煩是不切實際的嗎? – thegumba 2011-05-18 17:28:39

+0

我在答案中提供的代碼應按照您的要求進行。 – 2013-04-11 18:50:59

0

嘗試使用nl2br(htmlspecialchars(stripslashes($paragraphs))),它將輸出文本究竟如何用戶輸入它。