Как с помощью ckeditor 5 вывести из БД в textarea отформатированный текст?
Я пытаюсь выводить из базы данных текст с форматированными html тэгами и стилями, но чтобы html и css не был текстом, а применялся. Вывести я пытаюсь в Ckeditor 5. Вот что получается если использовать только echo json_encode($cust)
<blockquote><ul><li><span style="background-color:hsl(270, 75%, 60%);">astra</span></li><li><span style="background-color:hsl(270, 75%, 60%);">master</span></li><li><span style="background-color:hsl(270, 75%, 60%);">lomaster</span></li></ul></blockquote>
Если вывести через декодирование echo html_entity_decode(json_encode($cust)), то textarea вообще ничего не выводит, но самое главное если есть только простенькие тэги типа p, h1, то они форматируются и выводятся! В textarea Ckeditor 5 мне нужно отредактировать данные из БД и отправить обратно. Всё это я делаю через аякс. Если не декодировать, то каждый раз когда я отправляю в БД отредактированные данные Ckeditor их шифрует и во второй проход получается так:
<p><blockquote><ul><li><span style="background-color:hsl(270, 75%, 60%);">astra12</span></li><li><span style="background-color:hsl(270, 75%, 60%);">master12</span></li><li><span style="background-color:hsl(270, 75%, 60%);">lomaster12</span></li></ul></blockquote></p>
textarea неспособна форматировать html. Это должен делать редактор, а как он делает я не понимаю. В инструкциях из того, что понял ничего про это. Может кто-нибудь знает об этом что-нибудь?
Ответы (1 шт):
Для вывода отформатированного текста с HTML и CSS в Ckeditor 5 из базы данных вам нужно использовать метод setData() объекта editor, чтобы установить значение редактора. Вы можете передать отформатированный текст в этот метод в качестве параметра.
Пример кода на PHP:
// Получаем отформатированный текст из базы данных
$formattedText = '<blockquote><ul><li><span style="background-color:hsl(270, 75%, 60%);">astra</span></li><li><span style="background-color:hsl(270, 75%, 60%);">master</span></li><li><span style="background-color:hsl(270, 75%, 60%);">lomaster</span></li></ul></blockquote>';
// Устанавливаем значение редактора
$editorValue = htmlspecialchars_decode($formattedText);
$editor->setData($editorValue);
В этом примере мы используем функцию htmlspecialchars_decode() для декодирования HTML-кода в отформатированном тексте, чтобы он отображался в Ckeditor 5 как HTML и CSS.
Если вы хотите отправить отредактированный текст обратно в базу данных, вам нужно использовать метод getData() объекта editor, чтобы получить значение редактора в виде отформатированного текста.
Пример кода на JavaScript:
// Получаем значение редактора
var editedValue = editor.getData();
// Отправляем отредактированный текст на сервер
$.ajax({
url: 'save-edited-text.php',
type: 'POST',
data: {editedText: editedValue},
success: function(response) {
// Обрабатываем ответ сервера
}
});
В этом примере мы используем метод getData() объекта editor для получения отредактированного текста в виде отформатированного HTML и CSS. Затем мы отправляем его на сервер с помощью jQuery.ajax() и сохраняем его в базе данных.