zoukankan      html  css  js  c++  java
  • 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;
    	}




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

  • 相关阅读:
    洛谷——P2054 [AHOI2005]洗牌(扩展欧几里得,逆元)
    线性筛法(伪模板及。。。)
    洛谷——P3919 【模板】可持久化数组(可持久化线段树/平衡树)
    CF450B Jzzhu and Sequences(矩阵加速)
    洛谷——P1349 广义斐波那契数列(矩阵加速)
    P1269 信号放大器
    istio prometheus预警Prometheus AlertManager
    istio promethus收集不到数据
    KubeletNotReady runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
    centos7虚拟机设置静态ip
  • 原文地址:https://www.cnblogs.com/codingcloud/p/5262979.html
Copyright © 2011-2022 走看看