用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[]

相关推荐