wysiwyg загрузчик сохранить в базу данных

Я не могу сохранить контент, написанный внутри редактора, в моей базе данных.

Я заметил, что если я изменю div на textarea, он просто отлично сохранится в базе данных. Но это «решение» удаляет функциональность wysiwyg и не может сохранить в формате данных, которые мне нужны.

Так как же сохранить в базу данных с помощью divs?

Вот мой код:

<form method="post" action="index.php">
<div id="editor" name="test">
<?

$sql = "SELECT blaabog FROM brugere WHERE id='1'";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {
echo $row["blaabog"];
}

?>
</div>
<button class="btn btn-default" type="submit">Send Post</button>
</form>

Если я изменю свой код на этот, он сохранится в базе данных, но, как описано выше, разрушит другие функции.

<form method="post" action="index.php">
<textarea id="editor" name="test">
<?

$sql = "SELECT blaabog FROM brugere WHERE id='1'";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {
echo $row["blaabog"];
}

?>
</textarea>
<button class="btn btn-default" type="submit">Send Post</button>
</form>

Как мне это исправить, чтобы я мог сохранить в своей базе данных в расширенном формате данных?

Спасибо

0

Решение

Чтобы получить содержимое редактора richtext для отправки на страницу PHP:

Создайте скрытый ввод текста на той же странице, что и редактор richtext, в той же форме.

Затем добавьте в форму функцию onSubmit, которая копирует содержимое div для ввода скрытого текста.

Это будет выглядеть примерно так:

<form name="my_form" method="post" onSubmit="document.my_form.editor_contents.value = $('#editor').html()" action="index.php">

<textarea name="editor_contents" style="display:none;"></textarea>

<div id="editor" name="test">
<?

$sql = "SELECT blaabog FROM brugere WHERE id='1'";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {
echo $row["blaabog"];
}

?>
</div>
<button class="btn btn-default" type="submit">Send Post</button>
</form>

нота
Не забудьте на этот раз вы должны сохранить editor_contents в базу данных.

0

Другие решения

просто добавьте событие onclick примерно так

<button onclick=" $('#txtEditor').val($('.Editor-editor').html());" class="btn btn-default" type="submit">Send Post</button>

нота #txteditorэто идентификатор вашей формы, как только это будет сделано, вы получите функциональность wysiwyg. чтобы поиграть с ним вы можете изменить .html в .text и это сохранит в базу данных, но без функциональности wysiwyg.

0

Если у кого-то есть такая же проблема, у меня есть решение:

Я изменил свой редактор wysiwyg на TINYmce, который прекрасно хранит информацию в базе данных с помощью следующего кода:

Код редактора:

 <script src="//cdn.tinymce.com/4/tinymce.min.js"></script>

PHP:

  // Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}


if(isset($_POST['text'])) {


$text = $_POST['text'];




$sql = "UPDATE users SET blaabog = '" . $text . "' WHERE id = 1";

if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;

}
}

?>

И еще немного PHP:

<form method="post">
<textarea name="text">
<?

$sql = "SELECT * FROM users WHERE id=1";
$result = $conn->query($sql);

while($row = $result->fetch_assoc()) {
echo $row["blaabog"];
}

?>
</textarea>
</div>
<div class="widget-container">
<div class="widget-content">
<div class="form-content">
<div id="response"></div>
</div>
<div class="form-footer">
<input type="submit" class="btn btn-success primary-btn" value="Gem blå bog">
</div>
</form>

Я не уверен, как, но код выше работает. Я купил решение у профессионала — очень жаль, если мои объяснения плохие.

В любом случае, если у вас такая же проблема, как и у меня, приведенный выше код должен сработать!

-1