2017-05-12 4 views
0

아약스를 사용하여 datas 파일을 업로드하려고합니다. 나는 그것이 새로운 FormData()를 사용하고있다 아약스 혼자 업로드 된 파일을 보낼 때업로드 된 파일을 보내고 아약스로 데이터 입력

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

; 여기 내 HTML 양식입니다

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); 
      } 
}); 

그러나 Idon't은 다음 예제와 같이 데이터

var DATA = 'name='+name; 

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

감사

당신이 폼 태그를 포함해야합니다 모든
+0

그냥 하나의 아약스에 '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); 아마 잘못, 시도하십시오

관련 문제