2012-08-27 46 views
0

我有一個自定義BB代碼編輯器的窗體。我遇到的問題是:如果我想製作一個粗體文本,它會讓我跳出[b]text[/b]。所以在提交表單後,這在用法上是無用的。我有一個預覽顯示它的外觀。 這裏是我的代碼:Code 這進入窗體本身:bbcode表單編輯器到db作爲html

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $("#fulls").bbcode(); 
    process(); 
    }); 

    var bbcode=""; 
    function process() 
    { 
     if (bbcode != $("#fulls").val()) 
     { 
      bbcode = $("#fulls").val(); 
      $.get('php/bbParser.php', 
      { 
       bbcode: bbcode 
      }, 
      function(txt){ 
       $("#full").html(txt); 
       }) 

     } 
     setTimeout("process()", 2000); 

    } 



</script> 

的textare哪裏是原單用[B]文字[/ B]。

<textarea name="fulls" id="fulls""></textarea> 

這裏是預覽:

<div name="full" id="full" ></div> 

我已經在這種情況下,鑫卡特的兩個選擇自己。 1.創建一個代碼,用於替換[b] Text [/ b],當我想從DB中取出它時。 2.將預覽輸出到另一個textare,其中包含所有正確的HTML。

在我看來,選項2更容易,但我不知道它是否將html添加到數據庫表中。

+0

切勿將字符串傳遞給'setTimeout'。這個特殊的例子可以寫成'setTimeout(process,2000)'。 – Ryan

回答

0

您需要將BB代碼存儲在數據庫中,以備日後輕鬆編輯。

快速谷歌搜索將提供腳本,可以根據需要輕鬆地將BB代碼轉換爲HTML。

+0

我應該使用javascript還是php將其轉換爲html?而且,如果我想讓它們脫離數據庫,會有很多bbcodes。它不會讓我的服務器變慢嗎? – mypoint

+0

我會用javascript - 這是一個很好的做法,如果您的服務器資源有限,可以將任何可以處理的內容都推遲到客戶端。但是如果你的服務器沒有完成,我會考慮在服務器端做更好的用戶體驗。 –

0

對於選項1,您絕對更安全。將BBCode存儲在數據庫中意味着您的網站受到攻擊的潛在途徑數量有限,因爲您支持的總標籤數量非常狹窄。