• 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.

  • 相关阅读:
    搭建php环境时解决jpeg6 make: ./libtool:命令未找到
    configure: error: zlib not installed
    南京呼叫中心防火墙配置(备份)
    检查Linux Bash安全漏洞以及各环境修复解决方法
    Linux 内核升级步骤
    CentOS 7没有ifconfig命令处理
    linux kickstart 自动安装
    red hat Linux 使用CentOS yum源更新
    -bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录
    linux LNMP自动安装脚本
  • 原文地址:https://www.cnblogs.com/tuifeideyouran/p/4397568.html
Copyright © 2020-2023  润新知