2017-02-27 58 views
2

您好,jQuery的AJAX与阵列

我工作的一个项目,并尝试发送我的多个选定“复选框”的值。但是,结果始终未定义。他找不到这些框。他们保持空虚。我在同一页面上测试了另一个输入,以防万一,他发现。

这里的问题是,我的输入场保持不确定(出于测试目的,我“检查”两个复选框)

pager.js

var requestGroupDel = false; 
$('.agg_trash').on("click", function() { 
    if (requestGroupDel == false) { 
     requestGroupDel = true; 

     var check_list = $('input[name=check_list]').val(); 

     requestDel = false; 

     $.ajax({ 
      type: "POST", 
      url: "app/control/ajax.php?action=groupdelete", 
      async: true, 
      data: { 
       "check_list": check_list 
      }, 
      success: function(data) { 

       data = $.trim(data); 
       requestGroupDel = false; 

       console.log(data); 

      } 
     }); 

    } 
}); 

表格(这是在一个while循环)

<input type="checkbox" class="agg_check" name="check_list[]" value="' . $artikel['id'] . '"> 

所有复选框有相同的名字,因为我想要的结果作为一个数组,以便我可以运行一个foreach。为什么这个输入是未定义的?

回答

2

您可以使用checked属性来获得这些输入的值。然后,用each() function循环它来构建你的数组。

即:

var check_list = [] 
$("input[name='check_list[]']:checked").each(function() { 
    check_list.push($(this).val()); 
}); 
console.log(check_list); 

输出:

Array [ "2", "3", "4" ]

0

变化

var check_list = $('input[name=check_list]').val(); 

通过

var check_list = $('input[name^="check_list"]:checked').toArray().map(function(el){ 
    return $(el).val(); 
}); 
+0

不幸的是,check_list将仍然是不确定的。 – Synthiatic