使用文件上传发布HTML表单并保持在同一页面(jQuery)

时间:2013-05-22 13:23:56

标签: php jquery html blockui

我正在使用jQuery和PHP发布长动态创建的HTML表单。因为我需要一个“发送”对话框并在同一页面上显示结果(理想情况下是在jQuery弹出窗口中),所以我不使用传统的HTML表单提交。我正在做的工作很好,除了文件输入类型不上传。

有办法做到这一点吗?

这是我的代码:

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 个答案:

答案 0 :(得分: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){ }
 });