jquery AJAX 向后台传数组

(一)

前台定义数组:var ids = "";

动态拼装:ids += $(this).val() + ",";

直接传递:"ids" : ids,

后台接受:

直接在方法里写:String ids


前台:

//修改状态 
	function test(){
		//var ids = [];
		var ids = "";
		$('input[name="followTaskStatus"]').each(function(){
			if($(this).prop('checked')){
				ids += $(this).val() + ",";
				//ids.push($(this).val());
			}
		})
		$.ajax({
			url: "<%=path%>/followtask/setStatus",
			type: "POST",
			dataType : 'json',//返回数据格式
			async:true,//是否异步请求,true:异步,false:同步; 默认值: true
			data: {
				"ids" : ids,
				//"names" : ids
			},
			success : function(result) {
				if (result.success) {
				    // 提示信息 result.msg
					showTip(result.msg);
					// 刷新页面															拼装搜索条件
					window.location.href = "<%=path%>/followtask/myFollowTaskSearch?search="
												+ companyNo;
				 }
			 },
			 error : function(XMLHttpRequest, textStatus, errorThrown) {
					window.location.href = '<%=path%>/common/goErrorPage';
				}
		});	
	}
后台:action

@Log
	@RequestMapping("setStatus")
	@ResponseBody
	public Map<String, Object> setStatus(String ids) throws Exception {
		followTaskService.updateStatus(ids);
		//用于向前台传信息
		Map<String, Object > map = new HashMap<String, Object>();
		map.put("msg", "状态修改成功");
		map.put("success", true);
		return map;
	}
service:按“,"拆分,赋给string[],我这里是多个参数,放到了map里。

@Override               
	public void updateStatus(String ids) throws Exception {
		Map<String, Object> map = new HashMap<String, Object>();
		
		String[] leadsIds = ids.split(",");
		map.put("ids", leadsIds);
		map.put("followTaskStatus", "1");
		map.put("followTaskUpdateDate", new Date());
		map.put("followUpdateOperatorNo", ContextUtil.getOperator()
				.getOperatorNo());
		
		followTaskMapper.updateStatus(map);
	}
mapper.xml文件:

<!-- 修改状态 addBy zhangjm 2015-04-17 -->
	<update id="updateStatus" parameterType="Map">
		update T_Follow_Task
		set follow_task_status = #{followTaskStatus,jdbcType=CHAR},
		follow_update_operator_no = #{followUpdateOperatorNo,jdbcType=VARCHAR},
		follow_task_update_date = #{followTaskUpdateDate,jdbcType=TIMESTAMP}
		where follow_task_no in 
		<foreach item="item" collection="ids" open="(" separator=","
				close=")">
				#{item}
		</foreach>
		
	</update>

(二):

前台数组定义:var ids = [];

向数组赋值:ids.push($(this).val());

传值:"ids" : ids,(同上)
前台:将上面的//打开,注掉它的上一行

后台:方法上不接受,直接

String[] ids  = request.getParameterValues("ids[]");

@Log
	@RequestMapping("setStatus")
	@ResponseBody
	public Map<String, Object> setStatus() throws Exception {
		String[] ids  = request.getParameterValues("ids[]");
		//String[] names  = request.getParameterValues("names[]"); 测试是否可传多个参数 
		followTaskService.updateStatus(ids);
		//用于向前台传信息
		Map<String, Object > map = new HashMap<String, Object>();
		map.put("msg", "状态修改成功");
		map.put("success", true);
		return map;
	}
service:传入 String[] ids

@Override                
	public void updateStatus(String[] ids) throws Exception {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("ids", ids);
		map.put("followTaskStatus", "1");
		map.put("followTaskUpdateDate", new Date());
		map.put("followUpdateOperatorNo", ContextUtil.getOperator()
				.getOperatorNo());

		followTaskMapper.updateStatus(map);
	}

mapper.xml:同上。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值