如何通过Ajax POST传递具有相同名称的多个输入数组元素值,例如ex:sikll

我有一个包含4个技能输入的表单,其中包含:

    

我需要在控制器中得到这个:

有没有办法让技能名称传递给没有序列化的服务器,因为我必须在我的search_param附加一个limit属性作为对象。 基本上我想要search_param.data中的所有发布数据和search_param.limit中的限制

skill – > array(’0’=>’php’,’1’=> java’,’2’=>’html’)(基本上作为控制器中的数组)

以前我提交的数据是表单提交。 现在我正在向Ajax做这个。 我尝试使用serialize()通过Ajax将数据传输到服务器控制器。 但问题是我使用的是一个接受限制作为参数的paginate函数(例如:param.limit,param是一个Object)。(请参阅下面的代码)我需要将两个数据和限制传递给ajax paginate函数。

我需要传递post数据和限制到paginate函数。

以下是代码:

  function getUsers() { var search_param = {'data':jQuery('#candidateForm').serialize()}; jQuery.ajax({ type: "POST", dataType:'JSON', url: jQuery('#site').val() + "search/ajax_search", data: search_param, cache: false, success: function(data) { if (data) { //something }else{ //else something } search_param.limit = 14; //this is desired way but as serialized it wont work paginate_4a(jQuery('#site').val()+'search/ajax_search', 'srchResultCnt', search_param, {'fn':'fn_name', 'index':0}); } }); } 

试过但但失败了:

 var skill = jQuery('input[name="skill[]"]').map(function(){return jQuery(this).val();}); var skill_hid = jQuery('input[name="skill_hid[]"]').map(function(){return jQuery(this).val();}); var experience = jQuery('input[name="experience[]"]').map(function(){return jQuery(this).val();}); var search_param = { 'skill':skill, 'skill_hid':skill_hid, 'experience':experience }; 

抛出未捕获的TypeError:非法调用任何帮助表示赞赏。

解:

最后使用get(),现在在服务器端获取数组…感谢Nisam ….

$(’input [name =“skill []”]’)。map(function(){return $(this).val();})。get();

数据参数应该是,

 data: {searchaparams:search_param,page:1} 

您可以将输入值作为数组获取,

 var search_array = $('input[name="skill[]"]').map(function(){return $(this).val();}).get(); 

变量search_array包含所有输入值。 您可以获取每个值search_array[0], search_array[1]

试试这个: http : //jsfiddle.net/borglinm/p8hY7/

迭代所有输入并构建一个数组

 var inputs = []; $("input").each(function(index, elem) { inputs.push(elem.value); }); var postData = { 'data': inputs, 'otherParam': 1 } console.log(postData);