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

Geo*_*Joy 1 javascript ajax jquery

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

<input type="text"  id="skill1" name="skill[]" value="">
<input type="text"  id="skill2" name="skill[]" value="">
<input type="text"  id="skill3" name="skill[]" value="">
<input type="text"  id="skill4" name="skill[]" value="">
Run Code Online (Sandbox Code Playgroud)

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

有没有办法让技能名称传递给没有序列化的服务器,因为我必须在我的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函数.

我需要传递后期数据和限制到分页功能.

以下是代码:

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

            }

        });
    }
Run Code Online (Sandbox Code Playgroud)

尝试过,但失败了:

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
    };
Run Code Online (Sandbox Code Playgroud)

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

解:

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

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

Nis*_*sam 5

数据参数应该是,

data: {searchaparams:search_param,page:1}
Run Code Online (Sandbox Code Playgroud)

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

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

该变量search_array包含所有输入值.你可以得到每个值search_array[0], search_array[1]..等等