使用Ajax

时间:2015-12-24 13:45:55

标签: jquery ajax form-data

我想发送一个带有ajax的表单,但表单包含文件输入 有我的表格:

<form name="form" id="form" method="post" enctype="multipart/form-data">
              <div class="form-group">
                <label for="libelle" >Libellé :</label>
                <input type="text" name="libelle" class="form-control" id="libelle">
              </div>
              <div class="form-group">
                <label for="libelle" >Photo :</label>
                <input type="file" name="photo" class="form-control" id="photo">
              </div>
              <div class="form-group">
                <label for="description">Déscription :</label>
                <input type="text" name="description" class="form-control" id="description">
              </div>
              <div class="form-group">
                <label for="libelle" >Prix Unitaire :</label>
                <input type="text" name="prix_unitaire" class="form-control" id="prix_unitaire">
              </div>
               <div class="form-group">
                  <label for="sel1">Catégorie :</label>
                  <select class="form-control" id="categorie_id" name="categorie_id">

                    <option value="1">1</option>

                  </select>
                </div>
              <input type="hidden" name="produit_id" class="form-control" id="produit_id">
            </form>

我读到我必须使用: var data = new FormData(jQuery('form')[1]);如何将所有表单与其他输入一起发送到服务器? 我的jquery代码:

return $.ajax({
                type: "GET",
                url: "/admin/addProduit",
                cache: false,
                data: $('form').serialize() ,
                success: function(data) {
                    console.log(data);
                },
                error: function(response) {
                  console.log('error');
                }
              });

1 个答案:

答案 0 :(得分:-1)

您应该这样做,并根据您的要求更新您的代码:

PHP和HTML

<?php
    print_r($_POST);
    print_r($_FILES);
?>

<form id="data" method="post" enctype="multipart/form-data">
    <input type="text" name="field1" value="val 1" />
    <input type="text" name="field2" value="val 2" />
    <input type="text" name="field3" value="val 3" />
    <input name="image" type="file" />
    <button>Submit</button>
</form>

Jquery的

$("form#data").submit(function(){

    var formData = new FormData($(this)[0]);

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

    return false;
});

谢谢!