Вставка или обновление ckeditor не работает при первой попытке - PullRequest
0 голосов
/ 05 сентября 2018

У меня проблемы с использованием 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 голосов
/ 06 сентября 2018

Я отвечу на ваш первый вопрос:

Если вы используете AJAX, пожалуйста, обновите textarea вручную перед отправкой данных на сервер, позвонив по номеру https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-updateElement.. Эта тема на самом деле известна. Пожалуйста, смотрите, например, https://dev.ckeditor.com/ticket/9913#comment:2.

...