Как интегрировать CKEditor с полем ввода (textarea) в форме на веб-странице?

Как мне интегрировать CKEditor 5 с обычной веб-формой, содержащей стандартное поле ввода (или <textarea>), для передачи данных при загрузке страницы и извлечения их при отправке на сервер? Я заметил, что CKEditor 5 работает с элементами <div>, но не могу понять, как должен выглядеть сценарий взаимодействия с формой.
  • 27 сентября 2024 г. 19:13
Ответы на вопрос 2
Интеграция CKEditor 5 с полем ввода `<textarea>` на веб-странице достаточно проста. CKEditor 5 позволяет инициализировать его на любом элементе, включая `<textarea>`. При этом все данные, введённые в редакторе, будут автоматически синхронизированы с этим полем. Вот шаги, которые вам нужно выполнить для интеграции CKEditor 5 с формой:

### Шаг 1: Подготовка HTML-формы

Начните с создания простой формы с `<textarea>`, в которой будет инициализироваться CKEditor:

```html
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CKEditor 5 Integration</title>
    <script src="https://cdn.ckeditor.com/ckeditor5/38.0.0/classic/ckeditor.js"></script>
</head>
<body>

<form id="myForm" action="/submit" method="POST">
    <textarea name="content" id="editor"></textarea>
    <button type="submit">Отправить</button>
</form>

<script>
    // Инициализация CKEditor на элементе <textarea>
    ClassicEditor
        .create(document.querySelector('#editor'))
        .catch(error => {
            console.error(error);
        });
</script>

</body>
</html>
```

### Шаг 2: Обработка данных на сервере

Когда пользователь отправляет форму, данные из CKEditor будут отправлены вместе с данными формы как обычный текст. На стороне сервера вы можете обрабатывать эти данные как обычно:

#### Пример на сервере с использованием Node.js и Express:
```javascript
const express = require('express');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/submit', (req, res) => {
    const content = req.body.content;
    console.log('Отправленные данные:', content);
    // Здесь вы можете сохранить данные в БД или выполнить другие операции
    res.send('Форма успешно отправлена');
});

app.listen(3000, () => {
    console.log('Сервер запущен на http://localhost:3000');
});
```

### Шаг 3: Примечания

1. **Подключение CKEditor**: В приведенном примере CKEditor 5 подключается с CDN. Если вы хотите использовать другую версию или настроить его, вы можете скачать его и подключить локально.

2. **Синхронизация**: CKEditor автоматически синхронизирует данные с `<textarea>` при отправке формы, так что вам не нужно беспокоиться о ручной синхронизации.

3. **Поддержка форматов**: CKEditor позволяет работать с форматированием текста и вставлять изображения, таблицы и др. Убедитесь, что серверная часть корректно обрабатывает полученные данные, особенно если вы собираетесь хранить HTML-код.

Таким образом, CKEditor 5 легко интегрируется с формами, и вы можете начинать использовать его для улучшения пользовательского ввода на вашем сайте.
Он прекрасно работает и с textarea. Если у вас обычные формы, то такой вариант будет предпочтительным. 

<textarea id="ckeditor"></textarea>
ClassicEditor.create( document.querySelector( '#ckeditor' ), {...});
Похожие вопросы