2017-05-12 34 views
0

我想用ajax上傳包含數據的文件。 這裏是我的HTML表單:用ajax發送上傳的文件和輸入數據

<body> 
    <input type="text" id="name" value="test" /> 
    <input type="file" id="pic" accept="image/*" /> 
    <input id = "submit" type="submit" /> 
</body> 

當我發送單獨上傳的文件與AJAX它是使用新的FORMDATA()工作;

var file_data = $('#pic').prop('files'); 
var form_data = new FormData();     
form_data.append('file', file_data); 
alert(form_data);        
$.ajax({ 
      url: 'test.php', // point to server-side PHP script 
      dataType: 'text', // what to expect back from the PHP script, if anything 
      cache: false, 
      contentType: false, 
      processData: false, 
      data: form_data,       
      type: 'post', 
      success: function(php_script_response){ 
       alert(php_script_response); 
      } 
}); 

但是。我不知道如何與數據

var DATA = 'name='+name; 

$.ajax({ 
    url: "test.php", 
    type: "post", 
    data: DATA, 
    success: function (response) { 
    console.log($response);    
    }, 
}); 

感謝

+0

只需一個ajax,你可以通過使用'form_data.append('input_name',$('#name')。val());' –

回答

0

你應該包括表單標籤首先發送輸入「姓名」,如下面的例子。

<form id="uploadForm" enctype="multipart/form-data" action="http://yourdomain.com/upload" method="post" name="uploadForm" novalidate> 
    <input type="text" id="name" value="test" /> 
    <input type="file" id="pic" accept="image/*" /> 
    <input id = "submit" type="submit" /> 
</form> 

然後你就可以把所有使用代碼形式的數據,如下列:

var form = $('#uploadForm')[0]; 
var form_data = new FormData(form); 

爲了回答您的具體問題有關發送只有ID爲「名稱」文本字段的值,只需使用以下行:

var DATA = 'name=' + $('#name').val(); 
+0

它可以工作!這很容易謝謝:) – Sidra

0

var name = $("#name").val(); form_data.append('name', name); 也許這是錯的,請嘗試

相關問題