2013-07-05 34 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外部适应?导致它有一些内容过滤器,我不知道如何禁用它 –

相关问题