如何通过 Ajax 将内容可编辑为 post 的 div 值获取到 php 文件?

How to get div value with content editable to post it to a php file via Ajax?

所以我有一个问题。我正在尝试将用户发布的帖子插入数据库,我想使用 Ajax 使其更加动态并发送输入,select 值和 div 中的内容其内容 editable,通过 jQuery。我正在使用 FormData 获取表单中的所有数据。

我有这个表格:

<form id="data" method="post" enctype="multipart/form-data">

     <input type="text" name="title" placeholder="Title">
     <div id="content" class="content" contenteditable="true"></div>
     <input type="text" name="tags" placeholder="Tags">
     <input type="file" name="file">

     <select>
          <option value="0">Select...</option>
          <option value="1">Option A</option>
          <option value="2">Option B</option>
          <option value="3">Option C</option>
     </select>
     <button name="insert" value="insert" class="button">Post</button>


</form>

jQuery/Ajax:

$(document).ready(function(){
    $("form#data").submit(function(){
          var formData = new FormData($(this)[0]);
          var cont = $("#content").val();
          formData.append("content", cont);
          $.ajax({
                url: 'iproddone.php',
                type: 'POST',
                data: formData,
                async: false,
                success: function (data) {
                         alert(data);
                         location.reload();
                },
                cache: false,
                contentType: false,
                processData: false
                });
                return false;
              });
        });

我最近添加了行 var cont = $("#content").val();formData.append("content", cont); 我注意到 php 在尝试 $_POST['content']; 时不再标记错误但是当我没有这些时第 php 行标记了一个错误。

PHP:

<?php

    if (isset($_POST['insert'])) {
        include_once('conn.php'); //connection file

        $tt=$_POST['title'];
        $cont=$_POST['content'];
        $tags=$_POST['tags'];

        $foo = $tt;
        $foo = ucfirst($foo);

        if ( 0 < $_FILES['file']['error'] ) {
            echo 'Error: ' . $_FILES['file']['error'] . '<br>';
            }
            else {
                move_uploaded_file($_FILES['file']['tmp_name'], 'img/tmb_prod/' . $_FILES['file']['name']);
                $photo=$_FILES['file']['name'];
            }

            echo "Image uploaded";

        $connn=mysql_connect("localhost","root","")or die("Connection problems");
        mysql_select_db("gtcomputer",$conn)or die("Error");

        mysql_query("insert into posts(title,content,tags,photo)values('$foo','$cont','$tags','$photo')",$conn)or die("Error".mysql_error());
        }

    else{
        header('Location: index.php');
    }

?>

当我创建新的 post 时,在 post 中 table 仅插入标题、标签和文件名。

刚刚添加 formData.append('content', $('#content').html()); 并开始工作。

$(document).ready(function(){
        $("form#data").submit(function(){
              var formData = new FormData($(this)[0]);
              formData.append('content', $('#content').html());

              $.ajax({
                    url: 'iproddone.php',
                    type: 'POST',
                    data: formData,
                    async: false,
                    success: function (data) {
                             alert(data);
                             location.reload();
                    },
                    cache: false,
                    contentType: false,
                    processData: false
                    });
                    return false;
                  });
            });