2013-06-20 142 views
-3

我试图通过ajax请求处理一个表单。的问题是,我的形式内的数组变量,当我经由串行化处理它通过AJAX来发送它返回这个:通过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"); 
     } 

    }); 
} 

谢谢。

+0

不要使用连载。使用POST –

+0

@YourCommonSense POST仍将序列化它。 –

+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 
      } 
     });