2013-05-22 2 views
1

jQuery와 PHP를 사용하여 오래 동적으로 생성 된 HTML 양식을 게시하고 있습니다. "보내기"대화 상자가 필요하고 동일한 페이지 (결과적으로 jQuery 팝업)에 결과를 표시해야하므로 기존 HTML 양식 제출을 사용하지 않습니다. 내가하고있는 일은 파일 입력 유형이 업로드되지 않는다는 점을 제외하고는 훌륭하게 작동합니다.파일 업로드 및 동일한 페이지에 머물러있는 HTML 양식 게시 (jQuery)

이 방법이 있습니까?

jQuery를 : 여기에

내 코드 형태로

function submitForm(submiturl) 
    { 
     $.blockUI({ message: "<h2>Submitting...</h2>" }); 

     var form = $('#theForm').serialize(); 
     var fields = "<?= urlencode(serialize($allFields)) ?>"; 

     $.ajax({ 
      url: submiturl, 
      data: {form: form, fields: fields, extraResults: window.extraResults}, 
      type: "post", 
      cache: false, 
      complete: function() { 
       // unblock when remote call returns 
       $.unblockUI(); 
      }, 
      error: function (xhr, ajaxOptions, thrownError) { 
       alert("ERROR"); 

      }, 
      success: function(strData){ 
       alert("SUCCESS: " + strData); 

      } 

     }); 
    } 
+1

참조 함수 http://stackoverflow.com/questions에이 코드를 사용/166221/how-can-i-upload-files-as-jquery – Adder

+0

jQuery 양식 플러그인이 작동하는 것처럼 보였습니다.하지만 필자의 필드와 extraRe를 보내야합니다. 같은 게시물에있는 sults. 그들은 submit.php 페이지에서 추가 처리를 위해 필요합니다. – rmooney

+0

http://stackoverflow.com/questions/2320069/jquery-ajax-file-upload 참조하십시오. – Schleis

답변

0

언급 enctype="multipart/formdata"

var uf = //get form id; 
var fd = new FormData(uf);  
$.ajax({ 
    type: "POST", 
    url: "xxxxx.php", 
    data: fd, 
    processData:false, 
    contentType: false, 
    success: function(msg){ } 
}); 
+0

좋은 접근 방식처럼 보이지만 시도 할 때 자바 스크립트는 새 FormData (uf)에서 멈 춥니 다. 이상적으로는 모든 브라우저에서 지원을 원합니다. FormData 객체가 Internet Explorer <10에서 지원되지 않는다고 생각합니다. 그러나 작동하도록 만들면 위안으로 삼을 것입니다. – rmooney