1

嘿伙计们,我正在实现一个页面,上面有大约 9 个单独的 div,我希望每个 div 都可以使用 ckeditor 单独编辑。该页面是通过带有 codeigniter 的 php 动态生成的,但我希望用户能够在完成 HTML 之前对其进行更改。我目前已经实现了 ckeditor 来编辑 div,如下所示:http: //nightly.ckeditor.com/7614/_samples/divreplace.html

但是,在用户完成后,我希望能够将 HTML 保存在我的服务器上,因为我将使用 wkhtmltopdf 将页面转换为 PDF。正如您在示例中看到的那样,一旦您单击任何 div,它就会打开一个新编辑器。当用户完成编辑页面时,我需要一种方法来提交更改,并且因为我试图将生成的 HTML pdf 格式,所以我不能包含按钮或类似元素。我也担心,因为在这个例子中你不能隐藏所有的编辑器,你只能打开一个新的,PDF 将显示 ckeditor 框。我在想我可以在 javascript 事件中获取文档并通过 ajax 请求将其发送到 php 函数,该函数会将其保存到文件中,然后 PDF 文件,但我不确定如何触发 html 提交事件或替换剩余的编辑框。有什么建议么?

4

2 回答 2

3

为什么不制作第二页并将数据发布到其中?

您可以免费获得预览和返回编辑选项。

于 2012-09-24T17:47:35.070 回答
2

您可以简单地将要转换为 PDF 的内容包装到 div 中,并在提交表单时将其序列化为隐藏字段:

<form id="yourForm" method="post" action="foo">
    <!-- This DIV will be serialized... -->
    <div id="yourContentToBeSaved">
        <!-- Your editors go here... -->
        <div class="editable">
            Foo
        </div>
        <div class="editable">
            Bar
        </div>
        ...
    </div>
    <input id="hidden" type="hidden" />
    <button type="submit">Serialize the DIV, then save the form</button>
</form>

jQuery代码:

$( '#yourForm' ).submit(function() {
    // Destroy all the editors.
    for( var instance in CKEDITOR.instances )
        CKEDITOR.instances[ instance ].destroy();

    // Store #yourContentToBeSaved HTML in a hidden field. You can 
    // retrieve these data with PHP on the server-side once the form is submitted.
    $( '#hidden' ).val( $( '#yourContentToBeSaved' ).html() );
});

瞧!

于 2012-09-25T08:23:36.677 回答