加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax提交带文件的表单

发布时间:2020-12-16 01:55:02 所属栏目:百科 来源:网络整理
导读:在做项目的时候遇到一个问题,在导入excel的时候导入出现的错误信息如何处理的问题。首先,交代一下前提:该导入功能没有使用事务控制,即不是成功或者不成功二选一。而是只要数据符合要求就导入,错误数据不导入提示用户修改。 逻辑上说,只要导入出现了导

在做项目的时候遇到一个问题,在导入excel的时候导入出现的错误信息如何处理的问题。首先,交代一下前提:该导入功能没有使用事务控制,即不是成功或者不成功二选一。而是只要数据符合要求就导入,错误数据不导入提示用户修改。

逻辑上说,只要导入出现了导入不成功的数据,就需要打回到导入页面。即回到用户的操作原点,并将错误信息呈现给用户。所有数据都导入成功时才转到list页面,并提示成功。

问题描述

那么问题是当以一般的形式提交表单时,经过处理后的信息输出到了一个空白的只有错误信息的页面。即覆盖掉了用户的操作原点。并且界面风格也是很不匹配。

解决思路

为了能让出现错误信息呈现在导入数据页面,所以想到了使用ajax。ajax可以不刷新页面,那么我就能把错误信息打回到导入数据页面。

实现

利用jquery的ajax提交表单,代码如下:

function submitForm() {
		var options={
			  type:"post",url:"${ctx}baseinfo/userinfo!importData.action",async: false,enctype:"multipart/form-data",iframe:true,dataType:"Text",error:function(data){
                    alert(data);
		          },success:function(msg){
	        	var arrs = msg.split("|");
				switch(parseInt(arrs[0])){
				case 1:
					document.getElementById("resultMsg").innerHTML=arrs[1];
					break;
				case 2:
					document.location.href = "${ctx}" + arrs[1];
					break;
				default:
					alert("未知错误请联系管理员!");	
				}                  
              }
        };
		var upload = $('#upload').val();
		if (upload.length == 0) {
			alert("上传文件不能为空!");
			return false;
		} else {
			return $('#frmServices').ajaxForm(options);
		}
	}


需要引入jquery的js文件jquery-1.10.2.min.js、jquery.form.js、jquery.MultiFile.js其中min.js需要1.5版本

小结:jquery的ajax中可用$('#yourformid').serialize()将表单中的数据都转化成:key1=value1&key2=value2但是这种方式无法提交带上传文件的数据。以上这种方式才可以将文件提交过去以后才支持。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读