通过ajax发送两个数组

时间:2014-01-16 19:51:39

标签: javascript php jquery ajax arrays

我想通过ajax发布两个数组。其中一个是多方面的。

这是我的代码:

var values = $('.formularioempresa').serialize();
contactos = $('#agregarcontactos').data('contactos')[0];


            $.ajax({
                url: "forms/procesar_forms.php",
                type: "post",
                data: values+contactos,
                success: function(result){
                    if (result == '1')
                        $('#error').show(500).delay(3000).hide('slow');
                    else { 
                        $('#confirmacion').show(500).delay(3000).hide('slow');
                    }
                },
                error:function(){
                    alert("failure");
                }
            });

值只是一个输入数组,而contactos是一个多维的,来自这段代码(不完全是):

<form class="formulariocontacto">
<input type="text" id="nombre" name="nombre[]" class="required form-control" />
<input type="text" id="apellido" name="apellido[]" class="required form-control" />
<input type="text" id="apellido2" name="apellido2[]" class="required form-control" />
<input type="text" id="telefonoc" name="telefonoc[]" class="required form-control" />
<input type="text" id="emailc" name="emailc[]" class="required form-control" />
<input type="text" id="cargo" name="cargo[]" class="required form-control" />
</form>

和jQuery for this

var values = $('form#formulariocontacto :input').serialize();
$('#agregarcontactos').data('contactos',[]);
$('#agregarcontactos').data('contactos').push(values);

我获得了2个数组但我不知道如何将它组合起来通过ajax发布它。

感谢您的帮助,抱歉我的英语不好:/

2 个答案:

答案 0 :(得分:2)

您需要将数组嵌套在对象中:

data: {'values' : values, 'contactos' : contactos}

当然这意味着这两者实际上应该是数组。我建议使用serializeArray代替serialize,然后您将拥有可以像上面一样干净地嵌套的数组。

var values = $('.formularioempresa').serializeArray();

答案 1 :(得分:0)

将它们放在一个数组中,并使用join&组合它们

data: [values,contactos].join('&'),