在使用CKEditor并将其信息发送到数据库时遇到了一些麻烦。 它确实很好用,我具有所有功能,但是当我通过ajax请求将其发送到PHP时,它不会假定文本是第一次输入CKEditor。它仅在我第二次提出ajax请求后才有效。似乎CKEditor不是实时的,只有在X时间之后,它才能保存我键入的信息,但是我找不到与之相关的任何信息。
我的初始化:
if (jQuery('#js-ckeditor:not(.js-ckeditor-enabled)').length) {
CKEDITOR.replace('js-ckeditor');
// Add .js-ckeditor-enabled class to tag it as activated
jQuery('#js-ckeditor').addClass('js-ckeditor-enabled');
}
我发出请求的功能:
$.ajax({ url: '../inc/call.php',
enctype: 'multipart/form-data',
processData: false,
contentType: false,
cache: false,
data: formData,
type: 'POST',
beforeSend: function(){
$("#article_btn").html('<i class="fa fa-cog fa-spin"></i>');
$("#article_btn").attr("disabled", true);
},
success: function(output) {...}});
还有一个问题,将这些信息保存到数据库的最佳方法是什么? 当前,我正在使用htmlspecialchars和htmlspecialchars_decode,但是当使用某些函数(表格,颜色)时,它确实不能很好地工作,并且不能以正确的方式将所有内容保存在数据库中。
答案 0 :(得分:1)
我将回答您的第一个问题:
如果您使用的是AJAX,请先手动更新textarea
,然后再通过调用https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-updateElement将数据发送到服务器。该主题实际上是已知的。请参阅https://dev.ckeditor.com/ticket/9913#comment:2。