嘿伙计我正在实现一个页面上有大约9个单独的div,我希望每个div都可以使用ckeditor单独编辑。该页面是通过带有codeigniter的php动态生成的,但我希望用户能够在最终确定之前对HTML进行更改。我目前已经实现了ckeditor来编辑div,如下所示:http://nightly.ckeditor.com/7614/_samples/divreplace.html
然而,在用户完成后,我希望能够在我的服务器上保存HTML,因为我将使用wkhtmltopdf将页面转换为PDF。正如您在单击任何div时所看到的那样,它会打开一个新的编辑器。我需要一种方法来在用户完成编辑页面时提交更改,因为我试图pdf生成的HTML我不能包含按钮或类似的元素。我也担心,因为在这个例子中你无法隐藏所有的编辑器,你只能打开一个PDF将显示ckeditor框的新编辑器。我以为我可以抓住javascript事件上的文件并通过ajax请求发送到php函数,将其保存到文件然后PDF文件,但我不确定如何触发html提交事件或替换剩下的编辑框。有什么建议吗?
答案 0 :(得分:3)
为什么不制作第二页并将数据发布到它?
您可以免费获得预览和返回编辑选项。
答案 1 :(得分: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() );
});
瞧!