通过ajax post请求发送数组变量

时间:2013-06-20 15:48:00

标签: php javascript jquery ajax

我正在尝试通过ajax请求处理表单。问题是我在表单中有一个数组变量,当我通过serialize处理它以通过ajax发送它时返回:

email_id%5B%5D=1&email_id%5B%5D=2&test=23

这是.serialize的结果。

我也在为数组变量使用多个select标签。

为什么我会收到此错误,我应该怎么做以避免和修复它。

<select name="email_id[]" id="email_id_0" style="width: 350px;margin-right: 5;">
</select>

function setList(str){
    var postDatas = $('#form'+str+'').serialize();
    alert(postDatas);
    // $('#crm-feedback').html('<img src="images/ajax-loader.gif"/>');
    $.ajax({
        url: 'somewhere/file.php',
        type: 'POST',
        data: postDatas,
        success: function(data){
            // $('#crm-feedback').html('Saved!').css('color','green');
            alert("test");
        }

    });
}

谢谢。

2 个答案:

答案 0 :(得分:2)

尝试以下

var array = document.getElementById("<your array elem>");
        var formdata = new FormData();
        for(var i=0; i< array.length; i++){
            formdata.append("<key>",array[i]);
        }

        $.ajax(
         {
             url: "<url>",
             dataType: "<expected return datatype>",
             type: "POST",

             data: formdata,
             success: function (result, status) {
                //process success
             },
             error: function (result, status) {
                //process failure
             }
         });

答案 1 :(得分:1)

我今天遇到了一个几乎完全相同的问题,现在可以通过这里的帮助解决了这个问题 - read this post and look at the jsfiddles