Я не могу сохранить контент, написанный внутри редактора, в моей базе данных.
Я заметил, что если я изменю 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>
Как мне это исправить, чтобы я мог сохранить в своей базе данных в расширенном формате данных?
Спасибо
Чтобы получить содержимое редактора 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
в базу данных.
просто добавьте событие onclick примерно так
<button onclick=" $('#txtEditor').val($('.Editor-editor').html());" class="btn btn-default" type="submit">Send Post</button>
нота #txteditor
это идентификатор вашей формы, как только это будет сделано, вы получите функциональность wysiwyg. чтобы поиграть с ним вы можете изменить .html
в .text
и это сохранит в базу данных, но без функциональности wysiwyg.
Если у кого-то есть такая же проблема, у меня есть решение:
Я изменил свой редактор 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>
Я не уверен, как, но код выше работает. Я купил решение у профессионала — очень жаль, если мои объяснения плохие.
В любом случае, если у вас такая же проблема, как и у меня, приведенный выше код должен сработать!