前端 传表格多条数据 给后台接收 (HTML前端表格多条数据JSON封装后;异步提交到后台处理)
1.多条数据采用checkBox 携带
//封装数据的对象 var PayObj = { O_NBR:"", P_NBR:"", O_AMOUNT:"" , P_DT:"", P_HL_ZH:"", P_PAY_TYP:"", P_POS:"", P_U_ZH:"", P_U_HM:"", P_ATTR_IMGS:"", P_RECEIPT_NBR:"" }
var a = JSON.parse("{\"title\":\"\",\"data\":[]}");2. 遍历表格封装数据:(表格的每一行是一个JSON对象;多行就是一个JSON数组,JSON数组在弄成一个对象)
function getChecked() { $('input[name="check[]"]:checked').each(function() { var PayObj = new Object(); roleids += $(this).val() + ","; requestTransNo += $(this).val() + ","; cardNo += $(this).attr('cardNo') + ","; cardUser += $(this).attr('cardUser') + ","; refundAmt += $(this).attr('refundAmt') + ","; tranNo += $(this).attr('tranNo') + ","; dealDate += $(this).attr('dealDate') + ","; orderId += $(this).val() + ","; PayObj.requestTransNo = $(this).val(); PayObj.cardNo = $(this).attr('cardNo'); PayObj.cardUser = $(this).attr('cardUser'); PayObj.dealDate = $(this).attr('dealDate'); PayObj.orderId = $(this).val(); PayObj.tranNo = $(this).attr('tranNo'); PayObj.refundAmt = $(this).attr('refundAmt'); PayObj.refundReason = document.getElementById('refundReason').value; alert(document.getElementById('refundReason').value); a.data.push(PayObj);//向JSON数组添加JSON对象的方法;很关键 }); }
3
///格式化数据 var obj=JSON.stringify(a);//这一行很关键
$.ajax({ type: "post", url : "${ctx}/refund/transferPaymentReback/ajaxRefundTransferPaymentReback.do", dataType: "json", cache: true, data:{'param':obj}, success: function (data) { showAlertMsg(data.flag.errorMsg, { closeFunction: function () { if (data.flag.success == true) { window.location.href="${ctx}/member/relation/bankOfHuaXiaManager.do" } } }); }, error: function () { alertMsg(null, false, null, null, "调用接口失败,请稍后重试!"); } });
5.后台解析接收数据
String param = request.getParameter("param"); JSONObject json=JSONObject.fromObject(param); List<Map<String,String>> payList=json.getJSONArray("data");