如何用AJax提交name[]数组?

今天开发的时候遇到了这么一个问题:Jquery的Ajax如何提交[name][]数组呢?众所周知 name后面加[]可以直接向服务器传输数组,但是Ajax不行,直接使用name[]会直接报错。

示例:

        $.ajax({
            url:"${ctx}/addcart",
            type:"post",
            data:{“name[]”:$(".pid").val()},
            dataType:"text",
            traditional : true,
            success:function (data) {
                if (data != "0"){
                    $(".cartlist span").text(Number($(".cartlist span").text())+Number(data));
                    Showbo.Msg.alert("已经添加到购物车");
                }else{
                    window.location.href="${ctx}/login";
                }
            }
        })

有大神提示说可以把form序列化提交

        $.ajax({
            url:"${ctx}/addcart",       cache: true,
            type:"post",
            data:$(‘#yourformid‘).serialize(),
            dataType:"text",
            traditional : true,
            success:function (data) {
                if (data != "0"){
                    $(".cartlist span").text(Number($(".cartlist span").text())+Number(data));
                    Showbo.Msg.alert("已经添加到购物车");
                }else{
                    window.location.href="${ctx}/login";
                }
            }
        })

然并卵,仍然会报400

我的处理方式:

        $.each($(".pid").serializeArray(), function(i, field){
            pid.push(field.value);
        });
        $.ajax({
            url:"${ctx}/addcart",
            type:"post",
            data:{pid:pid},
            dataType:"text",
            traditional : true,
            success:function (data) {
                if (data != "0"){
                    $(".cartlist span").text(Number($(".cartlist span").text())+Number(data));
                    Showbo.Msg.alert("已经添加到购物车");
                }else{
                    window.location.href="${ctx}/login";
                }
            }
        })
    }

其实很迷,不知道为什么加了中括号就呵呵

时间: 2024-10-11 11:56:51

如何用AJax提交name[]数组?的相关文章

如何用ajax提交多组同样的数据(数组)到后台?

我在AJAX中这样写 $("#subbutton").click(function(){          var machineCode_1=$("#machineCode_1").val();          var machineCode_2=$("#machineCode_2").val();          var machineCode_3=$("#machineCode_3").val();         

如何用Ajax传一个数组数据

PHP接收多个同名复选框信息不像ASP那样自动转换成为数组,这给使用带来了一定不便.但是还是有解决办法的,就是利用javascript做一下预处 理.多个同名复选框在javascript中还是以数组的形式存在的,所以在表单提交之前可以利用javascript把复选框中的信息组合成一个字符数 组赋值给表单中的隐藏元素,然后用PHP中的explode函数解析此数组,这样就可以实现复选框信息的传递了.下面举例说明.缙云县外国专家局 假设有这样一个表单: <form name="form1&quo

JQuery AJAX 提交js数组

例如: var data = { No:"001",Name:"张三",score:[80,75,82,66,70] } $.post(url,$.param(data,true),callbackFunc); 语法 jQuery.param(object,traditional) 参数 描述 object 要进行序列化的数组或对象. traditional 规定是否使用传统的方式浅层进行序列化(参数序列化). 注意:第二个参数如果省略,提交的变量名后面会多出一个“

spring mvc ajax 提交复杂数组类型

The server refused this request because the request entity is in a format not supported by the requested resource for the requested method 1.Spring Mvc 配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp

ajax传递数组、form表单提交对象数组

在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发任务中,遇到了需要批量传递对象,也就是需要传递对象数组,在此做个总结.今天又遇到需要向后台传递数组,便一并写下来吧. 1.ajax传递普通数组 前台代码 var deleteNum= [];//定义要传递的数组 deleteNum.push("1"); deleteNum.push(&qu

js序列化数组用于ajax提交数据

但我们要用ajajx提交类似于: array('id' =>12,data => array('a'=>1,'b'=>2)); 这样的二维数组的数据时,直接ajax提交后台是接收不到的,需要特殊处理下: //这里只能处理二维数组数据,多维的需在做循环或递归function serialize_data(obj){ var str = ''; for(var i in obj){ if(typeof(obj[i]) === 'object'){ for(var s in obj[i]

jquery.ajax提交多值(数组)

偶尔会遇到类似复选框的一个属性存在多值情况,若使用ajax提交的化,设置data :{ids:[1,2,3,4]} 提交后,后台无法使用ids获取到数据. 这里可以用到ajax的 traditional 参数,把 traditional 设置为true就可以. $.ajax({ url:url, traditional:true, data:{ ids:[1,2,3,4] } }); 则,后台就可以用ids获取提交的数据了

JavaWeb开发中form、ajax提交数据Model转化

JavaWeb开发中form.ajax提交数据Model转化 问题 最近学习MongoDB数据库,作为java开发的我,当然需要做个小的web程序来测试一番了.在html中我采取ajax提交方式,因为我要模拟各种类型的数据,基础数据类型.数组.对象等.然而,最终发现了个不同的地方:Form和ajax提交数据,在HttpServletRequest中尽然参数名有所不同. 数据类型 form ajax 基础数据 para=value para=value 数组 para[]={"aaa",

利用jquery进行ajax提交表单和附带的数据

1.获取表单数据: $form.serialize() 2.附带数据:input[status]=1 3.构造url链接:url = $form.attr('action') + '?input[status]=1' 3.ajax提交:$.post(url, post_data, function(res){xxx}, 'json'); 4.后台php接收 $_REQUEST['input'];(input是一个数组存放提交的所有数据)