【问题标题】:How to get div value with content editable to post it to a php file via Ajax?如何获取内容可编辑的 div 值以通过 Ajax 将其发布到 php 文件?
【发布时间】:2015-02-03 02:12:57
【问题描述】:

所以我有一个问题。我正在尝试将用户发布的帖子插入数据库,我想使用 Ajax 使其更具动态性,并通过 jQuery 发送输入、选择 div 中的值和内容,其内容可编辑。我正在使用 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');
    }

?>

当我发布新帖子时,在帖子表中只插入标题、标签和文件名。

【问题讨论】:

    标签: php jquery html ajax form-data


    【解决方案1】:

    刚刚添加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;
                      });
                });
    

    【讨论】:

      猜你喜欢
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 2020-07-11
      • 2016-08-22
      • 1970-01-01
      • 2019-11-13
      相关资源
      最近更新 更多