Ajax 生成流文件下载 以及复选框的实现

时间:2023-03-09 17:06:03
Ajax 生成流文件下载 以及复选框的实现

JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。

<th><input type="checkbox" name="title" id="checkbox_all"/></th>
{% for student in students %}
<tr>
<td><input type="checkbox" name="student_name" id="boxes" value="{{ student.number }}"/></td>
$('#checkbox_all').click(function () {
var a = document.getElementsByTagName("input");
if (document.getElementById("checkbox_all").checked == true) {
for (var i = 0; i < a.length; i++)
if (a[i].type == "checkbox") a[i].checked = true;
}
else {
for (var i = 0; i < a.length; i++)
if (a[i].type == "checkbox") a[i].checked = false;
} }
);
$('#input_student').click(function () {
var arr = new Array();
var sign = 0;
var inputs = document.getElementsByTagName('input');//获取所有的input标签对象。
for (var i = 0; i < inputs.length; i++) {
var obj = inputs[i];
if (obj.type == 'checkbox') {
if (obj.checked == true) {
sign = 1;
var length = arr.push(obj.value);
}
}
}
if (sign == 0)//没有被选择项
{
alert("请勾选要下载的数据!");
return;
}
if (!confirm("确定下载选中的条目吗?")) return;
var form = $("<form>");
form.attr('style', 'display:none');
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', '{% url "teacher:downloadStu" %}');
var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'number');
input1.attr('value', arr.join("&"));
$('body').append(form);
form.append(input1);
form.submit();
form.remove();
});

同理提交多个数据就多使用几个input.

相关文章