2013-05-22 26 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-asynchronously -with-jquery – Adder

+0

我已經看過,jQuery表單插件看起來可以工作,但我也需要發送我的字段和extraRe在同一篇文章中出現。他們需要在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

似乎是一個很好的方法,但是當我嘗試它時,JavaScript凍結了新的FormData(uf); 理想情況下,我希望支持所有的瀏覽器(我不認爲IE 10中支持FormData對象),但是如果我能使它工作,我會把它作爲一種安慰。 – rmooney

相關問題