所见即所得 bootstrap 保存到数据库

wysiwyg bootstrap save to database

我无法将在编辑器中编写的内容保存到我的数据库中。

我注意到如果我将 div 更改为 textarea,它会很好地保存到数据库中。但是 'solution' 删除了所见即所得的功能,并且无法以我需要的丰富数据格式保存。

那么如何使用 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>

我该如何解决这个问题,以便能够以丰富的数据格式保存到我的数据库中?

谢谢

为了让富文本编辑器的内容提交到PHP页面:

在与富文本编辑器相同的页面上以相同的形式创建隐藏文本输入。

然后向您的表单添加一个 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 保存到数据库。

如果有人遇到同样的问题我有解决办法:

我将我的所见即所得编辑器更改为 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>

我不确定上面的代码是如何工作的。我从专业人士那里购买了解决方案 - 如果我的解释不好,请见谅。

总之,如果你和我有同样的问题,上面的代码应该可以解决问题!

只需像这样添加 onclick 事件

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

注意 #txteditor是表单的 ID 一旦完成,您将获得所见即所得的功能。要玩弄它,您可以将 .html 更改为 .text,它将保存到数据库,但没有所见即所得的功能。