我有一个下拉菜单,我选择了一个文件类型,然后我希望它根据所选内容生成一个文件,并强制在php中使用header
下载它。这是jQuery。
$('#exportdropdown').change(function(){
var searchinput = $('#searchinput').val();
var maxrec = $('#navdropdown option:selected').text();
$('.loadCont').fadeIn();
if($('#importbutton').hasClass('clickedButton')){
$.get('export.php', {filter: 'import', maxrecords: maxrec, type: 'xls'});
}else{
$.get('export.php', {filter: 'export', maxrecords: maxrec, type: 'xls'});
}
$('.loadCont').delay('600').fadeOut();
});
我目前正在强制进行测试,但似乎并没有达到预期的效果。使用下面的数据export.php?filter='import'&maxrecords=15&type='xls'
处理文件时,会强制下载。只是不使用jQuery方法。有什么明显的东西对经验丰富的人来说很突出?
答案 0 :(得分:3)
Ajax在这里毫无意义,您所做的就是请求一个将文件推送到浏览器的链接。尝试:
window.location.href = "export.php?filter=" + filter + "&maxrecords=" + maxrecords + "&type=" + type;
答案 1 :(得分:0)
在我的一些项目中,我正在做类似但完全不同的事情:)。
在下拉列表中单击我将打开新窗口并执行karim79代码(例如在体载上)。 SO
- 点击下拉项目
- 使用适当的参数打开新窗口,例如:
醇>
window.open ("newindow.html?filter=" + filter + "&maxrecords=" + maxrecords + "&type=" + type");
//this is not tested, but you got the point
- on body的onload事件执行:
醇>
window.location.href = "export.php?filter=" + filter + "&maxrecords=" + maxrecords + "&type=" + type";
或类似的东西。