如何使用ajax将数组作为数据发送

时间:2014-01-24 22:40:02

标签: javascript jquery ajax arrays

请参阅随附的jsfiddle链接,我需要从多个表单中收集数据并将数据合并为单个数据阵列将其发送到服务器(spring mvc控制器)以使用ajax.post持久保存

请让我知道最好的方法,我的数组会通过ajax调用转换为Json,或者我必须做一些魔术。

由于 http://jsfiddle.net/6jzwR/1/

<form id="form1" name="formone" class="myclass">
    <input type="text" id="txt11" name="txt11" value="name1" />
    <input type="text" id="txt12" name="txt12" value="name2" />
</form>
<form id="form1" name="formtwo" class="myclass">
    <input type="text" id="txt21" name="txt21" value="name3" />
    <input type="text" id="txt22" name="txt22" value="name4" />
</form>
<input type="button" id="button" value="Click Me" />

(function ($) {
    $(document).ready(function () {
        alert("serialize data :" + $('.myclass').length);
        var mydata = null;
        $('#button').on('click', function (e) {

            $('.myclass').each(function () {
                alert("serialize data :" + $(this).serialize());
                if ((mydata === null) || (mydata === undefined)) {
                    mydata = $(this).serializeArray();
                    alert("My data is null");
                } else {
                    mydata = $.merge(mydata, $(this).serializeArray());
                    alert("My data final data after merger " + test);
                }
            });

        });
    });
}(jQuery));

2 个答案:

答案 0 :(得分:1)

试试这个:

var array = $('input[type="text"]').map(function() {
    return $(this).val();
}).get();

alert(JSON.stringify(array));

Demo

答案 1 :(得分:0)

您可以将所有表单的数据放入数组中,然后将其与&

连接起来
var formdata = []
$('.myclass').each(function(){
    formdata.push($(this).serialize());
});
var data = formdata.join('&');

http://jsfiddle.net/6jzwR/3/