2016-10-25 3 views
0
  1. Получить форму с идентификатором
  2. создать FormData с Form ID
  3. отправить данные с $ .ajax

Мой код:Как отправить объект FormData?

<form id="company"> 
    <input type="text" name="name" /> 
    <input type="tel" name="tel" /> 
    <input type="button" id="send" name="send" value="send" /> 
</form> 


<script> 
     ##get Form id an create form data## 
     var testForm = document.getElementById('send'); 
     testForm.onclick = function(event) { 
      var formData = new FormData(document.getElementById('company')); 
     ##this is Ajax Method## 
       $.ajax({ 
        url : './json/company.php', 
        method : 'POST', 
        data : formData, 
        timeout : 10, 
        dataType :'json', 
        success: function(data) 
        { 
         alert("Success"); 
        } 
       }); 
     } 
    </script> 

Error : TypeError: Argument 1 of FormData.constructor is not an object

+0

почему вы используете объект formData? – madalinivascu

+0

Есть еще один способ? – ali

+0

см. Мой ответ на этот вопрос – madalinivascu

ответ

0

Поскольку ваша форма не имеет входной файл типа, вы должны использовать функцию вместо serialize

$(testForm).click(function(event) { 
       event.preventDefault();//don't forget to prevent the default click event from redirecting you from the page 
       $.ajax({ 
        url : './json/company.php', 
        method : 'POST', 
        data : $('#company').serialize(), 
        timeout : 10, 
        dataType :'json', 
        success: function(data) 
        { 
         alert("Success"); 
        } 
       }); 
     }); 
+0

tnx, я делаю это, но не отправляю параметры, Fire Fox NetWork Mode Скажите «Нет параметров для этого запроса» – ali

+0

можете ли вы опубликовать снимок экрана этого сообщения? – madalinivascu

+0

http://uupload.ir/files/7t14_post.jpg – ali

0

Попробуйте

data : JSON.stringify(formData) 
0

Вы недостающая важные параметры, и JQuery пытается обработать FormData, которую он не может.
Вы должны добавить опцию processData: false, и вы должны избегать отправки CONTENTTYPE, а

var testForm = document.getElementById('send'); 
testForm.onclick = function(event) { 
    var formData = new FormData(document.getElementById('company')); 
    $.ajax({ 
     url: './json/company.php', 
     method: 'POST', 
     data: formData, 
     processData: false, 
     contentType: false, 
     timeout: 10, 
     dataType: 'json', 
     success: function(data) { 
      alert("Success"); 
     } 
    }); 
} 
0

Для того, чтобы использовать FormData с JQuery вы должны установить правильные параметры

var testForm = document.getElementById('send'); 
testForm.onclick = function(event) { 
    var formData = new FormData(document.getElementById('company')); 
    $.ajax({ 
     url : './json/company.php', 
     type: "POST", 
     data : formData, 
     processData: false, 
     contentType: false, 
     success: function(data) 
     { 
      alert("Success"); 
     }, 
     error: function(jqXHR, textStatus, errorThrown){ 
      //if fails  
     } 
    }); 
} 
Смежные вопросы