当前位置: 首页 > 知识库问答 >
问题:

如何通过Ajax POST传递多个同名的输入数组元素值

尹晟
2023-03-14

我有一个带有4个技能输入的表单,其中包含html,如下所示:

<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="">

我需要把这个放在控制器里,比如:

有没有办法在不序列化的情况下将技能名称传递给服务器,因为我必须将限制属性附加到我的search_param这是一个对象。基本上,我想要所有的帖子数据在search_param.data和我的限制在search_param.

技能-

以前我提交数据的形式提交。现在我要把这个交给阿贾克斯。我尝试serialize()通过Ajax将数据传输到服务器控制器。但问题是,我使用的分页函数接受限制作为参数(例如:param.limit,param是一个对象)。(请检查下面的代码)我需要传递数据和ajax分页功能的限制。

我需要将post数据和limit传递给分页函数。

代码如下:

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

共有2个答案

许天逸
2023-03-14

试试这个: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);
梁俊智
2023-03-14

数据参数应该是,

data: {searchaparams:search_param,page:1}

你可以得到数组形式的输入值,

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

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

 类似资料:
  • 问题内容: 是否可以获取多个具有相同名称的输入,然后从PHP访问它们?想法是这样的:我有一个表格,可以输入不确定数量的物理地址以及其他信息。如果我只是在几个条目中为每个字段赋予相同的名称,然后通过post提交该数据,PHP是否可以访问它? 举例来说,我在一个名为“ xyz”的页面上有五个输入,我想使用PHP访问它们。我可以做些什么: 如果是这样,那将使我的生活变得轻松十倍,因为我可以通过一个表单发

  • 当我点击按钮时: -迭代所有tr并将其所有输入的名称收集到数组(这已经完成了) - 我还从输入和触发名称的两个文本中获取数据 - 通过ajax将所有(一个数组和两个文本)发送到asp.net.cs(不起作用)

  • 我的大学作业有点问题。我真的不明白指针和引用是怎么回事。有人能指出我哪里出错了吗??

  • 问题内容: 我想识别该网络元素。它仅定义了这两个类。我不能执行以下操作,因为不使用空格分隔的值。什么是替代品? 问题答案: 我认为巴拉克·马诺斯的答案不能完全解释这一点。 想象一下,我们只有以下几个元素: XPath如何匹配 只匹配1个(完全匹配),巴拉克的答案 比赛1,比赛2和比赛3(比赛类别包含,课程顺序很重要) 匹配1、2、3和4(只要元素具有class 和) 同样,在这种情况下,Css S

  • 问题内容: 如何通过$ _GET将数组类型的一个或多个变量传递给另一页? 我总是以以下形式传递变量值 那传球呢? 我是否需要编写一个for循环并附加所有值? 谢谢 问题答案: 您可以使用语法通过_GET传递数组: PHP理解此语法,因此等于。 您还可以指定键: 多维数组也可以工作: 自动执行此操作: 一种替代方法是传递json编码的数组: 您可以解析为: 并再次使用json_encode对其进行编

  • 我正在尝试解组一个包含多个同名元素的XML文档。我不确定是否需要创建bean的Arraylist并将其传递给解组器。我希望有人能给我一些建议来解决这个问题。我试图解析的XML是一个SOAP响应,但我去掉了信封,所以我只有它的主体,它看起来是这样的: 这是从一个包含50多个字段的表返回的,但我创建了一个testBean,并且我定义了fkdevice只是为了使其简单,我的bean看起来像这样: 这给了