• js选择checkbox值,组织成key-value形式,传值到后台


    最近项目中遇到这样一个问题,接口定义需要传一个Map<String,String[]> params的参数,需要在jsp页面组织数据到后台操作,所以记下来以后难免还会用到。

    以下是javascript代码:

    	var jsonData = new Array(); //定义一个用来作传递数据变量	
    	var temp =[];//该变量是为了判断最后一次循环而定义 
    	$("input[name='waybillNo']:checked").each(function(){ //遍历所有checkbox选中的值
    		temp.push($(this).val());//设置值到数组中
    	});	
    
    	$("input[name='waybillNo']:checked").each(function(index,element){//遍历运单号
    		temp.length--;
    
    		var waybillNos = new Array();
    		var carIds = new Array();
    		
    		waybillNos.push($(this).val()); //添加运单号到waybillNos数组
    		
    		$(this).parent().next().next().find("input[name='carIds']:checked").each(function(){//遍历车辆ID
    			carIds.push($(this).val());//添加车辆ID到carIds数组
    		});
    		
    		if(temp.length !=0){
    			jsonData.push(waybillNos+":"+carIds+"|");//组织数据
    		}else{//最后一次循环
    			jsonData.push(waybillNos+":"+carIds);//组织数据
    		}
    		waybillNos = [];//清空数组,准备下一次循环
    	});
    	
    	//发送ajax请求
    	$.ajax({
               type: "post",
               url: "${pageContext.request.contextPath}/waybill/auth/updateStatus.do",
               data:"param="+jsonData,
               dataType: "POST",
               success: function(data){
    			if(data.success){
    				alert("操作成功!");
    			}else{
    				alert("操作失败!");
    			}	            	
               },
                error: function(){
                	alert("系统异常,请联系管理员!");
                }
           });

    后台用springMVC接受参数param,代码如下:

    <span style="white-space:pre">	</span>/**
    	 * 后台Java方法
    	 * @author yunns
    	 * @date 2015-8-12 下午2:44:35 
    	 * @version V1.0
    	 */
    	@RequestMapping("/auth/updateWaybillStatus.do")
    	@ResponseBody
    	public Map<String,Object> updateStatus(String param)throws Exception{
    		Map<String,Object> model = new HashMap<String, Object>();
    		Map<String,String[]> params = new HashMap<String, String[]>();
    		try {	
    			String paramData = param.replace("|,", "|");//替换字符串
    			//组织数据
    			String[] s1 = paramData.split("\|");
    			for (String s : s1) {
    				String[] s2 = s.split(":");
    				String[] carIds = s2[1].split(",");
    				params.put(s2[0], carIds);
    			}
    			waybillBaseService.confirmDriverWaybill(params, SecurityHelper.getAccountName());
    			this.setSuccessFlag(model);
    		} catch (Exception e) {
    			this.setFailFlag(model);
    			logger.error("修改状态出错!", e);
    		}
    		return model;
    	}




    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    oracle-查询执行速度慢的sql
    oracle 锁表的处理。
    linux视频学习7(ssh, linux启动过程分析,加解压缩,java网络编程)
    【转】soapUI和Jmeter的接口测试结构区别
    什么是探索性测试?
    loadrunner动态从mysql取值 [需要下载跟数据库服务器一致的dll,32位或64位]
    myeclipse中disable maven nature怎么恢复
    Eclipse+Maven创建webapp项目<一>
    Loadrunner
    自动化测试,基于selenium/appnium 学习
  • 原文地址:https://www.cnblogs.com/yunns/p/4867900.html
Copyright © 2020-2023  润新知