JavaScript以POST方式打开新页面 在Yii中的使用

来源:互联网 发布:淘宝情趣珍珠内裤评论 编辑:程序博客网 时间:2024/05/17 23:59

场景:前置的查询页面,选择查询条件后提交到另一个页面。

方式很多,列出我知道的几种

1.window.open.

2.Response.Redirect.

3.Server.Transfer.

方法一和方法二都存在同样的问题,因为是get方式提交的,所以提交的数据都会显示URL中,一个是安全问题,另外一个是URL长度限制,在IE中,URL最大长度为2083.所以数据量过多时会导致数据丢失。

于是考虑到通过POST方式传递参数。

/*        *功能: JS跳转页面,并已POST方式提交数据        *参数: URL 跳转地址 PARAMTERS 参数        *返回值:        *创建时间:20160713        *创建人:         */        function ShowReport_Click() {            var parames = new Array();            parames.push({ name: "param1", value: "param1"});            parames.push({ name: "param2", value: "param2"});            Post("SupplierReportPreview.aspx", parames);            return false;        }        /*        *功能: 模拟form表单的提交        *参数: URL 跳转地址 PARAMTERS 参数        *返回值:        *创建时间:20160713        *创建人:         */        function Post(URL, PARAMTERS) {            //创建form表单            var temp_form = document.createElement("form");            temp_form.action = URL;//Yii中为'Controller名/函数名称'            //如需打开新窗口,form的target属性要设置为'_blank'            temp_form.target = "_self";            temp_form.method = "post";            temp_form.style.display = "none";            //添加参数            for (var item in PARAMTERS) {                var opt = document.createElement("textarea");                opt.name = PARAMTERS[item].name;                opt.value = PARAMTERS[item].value;                temp_form.appendChild(opt);            }            document.body.appendChild(temp_form);            //提交数据            temp_form.submit();        }
0 0
原创粉丝点击