用JQuery的方式把name相同的元素按照数组方式提交到后台
如果直接放到form里面,名字相同的多个元素只需要在后台用request.getParameterValues(name)就可以了,JQuery用如下方式处理:
注意:后端貌似真得用request.getParameterValues(name[])的方式才能取到值,通过浏览器的network也可以看到http请求信息里面传的参数名就是name[]这种格式的
解决方法:
客户端:
var monthIncome = $.map($("input[name='monthIncome']"),function(obj){
return $(obj).val();
});
$.post("/update-month-income.jspx",
{year:2008,monthIncome:monthIncome},
function(){
//refresh after input data is saved.
});
Java服务端:
request.getParameter("year");
request.getParameterValues("monthIncome");
问题在于:
jQuery的例子里给的是这样的
$.post("test.php", { 'choices[]': ["Jon", "Susan"] });
按这个例子做,在Java里用request.getParameterValues("monthIncome");取不到值,
要这样才行request.getParameterValues("monthIncome[]");
但是不用jQuery,用form提交的时候,以前一直是用request.getParameterValues("monthIncome");
所以搞糊涂了。
不知PHP里面是不是要写成monthIncome[]