2014-02-23 138 views
0

我有以下ajax jQuery代码,在document.ready函数从ajaxFileDownload.php下载文件。表单上的jQuery和Ajax提交 - 解析POST数据

但是,我想用它代替document.ready函数用于提交一个称为报表的表单。所以,当我点击提交表单名称报告,然后运行这个,我也想解析表单字段发布变量称为user_id到php文件。

任何想法如何做到这一点?

我说:$('#reports').on('submit', function(e) {

我怎样才能添加USER_ID职位变量?

$(function() { 
    $('#reports').on('submit', function(e) { 
     var $preparingFileModal = $("#preparing-file-modal"); 
     $preparingFileModal.dialog({ 
      modal: true 
     }); 
     $.fileDownload('ajaxFileDownloader.php?' + Math.random(), { 
      successCallback: function (url) { 
       $preparingFileModal.dialog('close'); 
      }, 
      failCallback: function (responseHtml, url) { 
       $preparingFileModal.dialog('close'); 
       $("#error-modal").dialog({ 
        modal: true 
       }); 
      } 
     }); 
     return false; //this is critical to stop the click event which will trigger a normal file download! 
    }); 
}); 
+0

你打算从哪里得到'user_id'?你还读过关于数据''jQuery.Ajax()'](http://api.jquery.com/jQuery.ajax/)? – kero

+0

@kingkero我打算从相同的报告表单获取user_id,有一个隐藏的字段,其值为user_id – John

回答

0

尝试添加$.fileDownload块内两行:

httpMethod: 'POST', 
data: $(this).serialize() 

像这样:

$.fileDownload('ajaxFileDownloader.php?' + Math.random(), { 
    httpMethod: 'POST', 
    data: $(this).serialize(), 
    successCallback: function (url) { 
     $preparingFileModal.dialog('close'); 
    }, 
    failCallback: function (responseHtml, url) { 
     $preparingFileModal.dialog('close'); 
     $("#error-modal").dialog({ 
      modal: true 
     }); 
    } 
}); 

那应该所有形式的数据发送到PHP脚本。

如果您只想发送一个字段,则可以使用$('#user_id')代替$(this),前提是该字段的值为id="user_id"