ckeditor插入或更新在第一次尝试中不起作用

时间:2018-09-05 11:21:47

标签: ajax ckeditor htmlspecialchars

在使用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,但是当使用某些函数(表格,颜色)时,它确实不能很好地工作,并且不能以正确的方式将所有内容保存在数据库中。

1 个答案:

答案 0 :(得分:1)

我将回答您的第一个问题:

如果您使用的是AJAX,请先手动更新textarea,然后再通过调用https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-updateElement将数据发送到服务器。该主题实际上是已知的。请参阅https://dev.ckeditor.com/ticket/9913#comment:2