2013-07-05 58 views
1

我剛剛通過內聯編輯獲得了CKEditor 4。我想爲我正在處理的網站做CMS。這是我想要做的:我如何使用內聯ckeditor保存或更新php頁面?

<div contenteditable="true"> 
//Site code 
</div> 
<button onclick="">Save</button> 

我想要一個腳本,將保存並更新我想編輯的PHP文件。就像獲取編輯頁面的內容一樣,然後將其輸入到目標文件,如home.php

我做了一些研究,但我找不到一個很好的簡單代碼,只會更新文件,就像這個「Save data to PHP/Mysql with inline edit in CKEditor」。當我測試它時,它不會更新,但它只是將文本置於div之下,並且不更新文件。

注:我在這一個新手...

回答

0

你應該記住的客戶端代碼(如CKEditor的使用JavaScript)和服務器端代碼(如PHP)的概念。

所以你需要做的是將編輯後的div發送回服務器上的PHP頁面(可能通過AJAX提供你提供的鏈接)並更新服務器端(PHP)的頁面。

但是,我個人會建議將內容存儲在數據庫中並從那裏讀取 - 直接更新PHP文件的安全影響非常大。如果您在過濾方面不夠嚴格,那麼很可能您的遠程執行代碼存在缺陷,這意味着任何人都可以在您的服務器上執行PHP代碼。

+0

如果你不介意,你可以給一個樣本?只是一個簡單的,我只是不知道ckeditor是如何工作的。 >。<對不起,這個行業是新的xD –

0

使用onsubmit事件,這是很簡單的:

<!-- Wrap editor with form. --> 
<form action="yourPHPaction.php" method="post" id="form"> 
    <!-- Your inline editor. --> 
    <div contenteditable="true" id="editable"></div>  

    <!-- This textarea will hold data for POST request, it can be hidden. --> 
    <textarea id="editorData" name="editorData"></textarea> 

    <!-- This little fellow submits the form. --> 
    <button type="submit">Submit form</button> 
</form> 
<script> 

    var textarea = CKEDITOR.document.getById('editorData'), 
     form = CKEDITOR.document.getById('form'); 

    // Update textarea on form submit with editor data. 
    form.$.onsubmit = function() { 
     textarea.setValue(CKEDITOR.instances.editable.getData()); 
    } 

</script> 

此外,此刻,CKEditor的團隊開發了一種新型的創造者調用基於<textarea>來簡化這些過程中的在線編輯器。看票:https://dev.ckeditor.com/ticket/10280

+0

和yourphpaction.php 像這樣 '$ editordata = $ _ POST [' editorData '] $ SQL = 「SQL命令」' 存儲數據? ? –

+0

沒錯。在那裏做任何你想做的事。 – oleq

+0

我可以問我是否可以讓DIV內部的代碼可編輯 在css外部適應?導致它有一些內容過濾器,我不知道如何禁用它 –

相關問題