支持单个值和数组形式参数
按钮
<a class="mini-button" onclick="ExportExcel()"> 导出</a>
构造参数
function ExportExcel() {
var dates = initDate();
var data = {
startdate: dates[0],
enddate: dates[1],
is_read: ($("input[name='is_read']:checked").val()) || 0,
uid: ($('#send_uids').val()).split(','),// 数组
};
DownLoad("/newcrmsite/Report/outputExcel", data, function (d) {
console.log('导出成功');
});
}
构造表单
function DownLoad(url, data, callback) {
//创建Form
var submitfrm = document.createElement("form");
submitfrm.action = url;
submitfrm.method = "post";
submitfrm.target = "_blank";
document.body.appendChild(submitfrm);
if (data) {
for (var p in data) {
if(p == 'uid' && data.uid){
// 为数组
for(var j=0; j < data.uid.length; j++){
var input = document.createElement('input');
input.type = 'hidden';
input.name = 'uid[]';
input.value = data.uid[j];
submitfrm.appendChild(input);
}
}else{
var input = document.createElement('input');
input.type = 'hidden';
input.name = p;
input.value = data[p];
submitfrm.appendChild(input);
}
}
}
submitfrm.submit();
setTimeout(function () {
submitfrm.parentNode.removeChild(submitfrm);
if (callback) callback();
}, 1000);
}
后端采用常规的同步下载Excel的代码。
点击按钮,会构建一个同步提交的表单,请求下载文件,请求发送出去后就执行回调函数。