1

我刚刚获得了带有内联编辑功能的 CKEditor 4。我想为我正在开发的网站做一个 CMS。这是我想做的事情:

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

我想要一个脚本来保存和更新我要编辑的 PHP 文件。就像获取编辑页面的内容然后将其输入到目标文件中一样home.php

我做了一些研究,但我找不到一个只会更新文件的简单代码,就像这个“在 CKEditor 中使用内联编辑将数据保存到 PHP / Mysql ”。当我测试它时,它不会更新,只是将文本放在 下div,并且不会更新文件。

注意:我是这个的新手......

4

2 回答 2

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

于 2013-07-05T07:35:04.297 回答
0

您应该记住客户端代码(如带有 JavaScript 的 CKEditor)和服务器端代码(如 PHP)的概念。

因此,您需要做的是将编辑后的 ​​div 发送回服务器上的 PHP 页面(可能通过您提供的链接建议的 AJAX)并更新服务器(PHP)端的页面。

但是我个人建议将内容存储在数据库中并从那里读取 - 直接更新 PHP 文件的安全影响是巨大的。如果您在过滤方面不是很严格,那么您很可能存在远程代码执行缺陷,这意味着任何人都可以在您的服务器上执行 PHP 代码。

于 2013-07-05T05:10:56.020 回答