Jquery选择多个复选框

时间:2010-07-31 02:04:28

标签: jquery checkbox

我有一个与复选框配对的类别列表。我找不到任何关于如何在var中存储所选复选框并将数据发送到服务器的文档。我需要从数据库中删除所选的类别。这是我正在处理的代码的一部分。

var cat_id = $('check_box').attr("id"); //gets the id of the checked category
var dataString = 'cat_id=' + cat_id; //should send all the selected checkbox IDs
$('.delete').click(function() 
{
    $.ajax({
        type: "POST",
        url: "edit_categories.php",
        data: dataString,
        cache: false,
        success: function(html)
        {
            window.location.reload(true);
        }
    });//end ajax
});//end click function

使用以下命令动态创建复选框:

<input type="checkbox" name="check_box" class="check_box" 
    id="<?php echo $cat_id; ?>" /> 

每个复选框都有一个唯一的ID,它们的数量会有所不同。

在edit_categories.php中我只有一个mysql用于删除cat_id = $ _POST ['cat_id']的类别,但我无法弄清楚如何从所选复选框中获取所有ID。

3 个答案:

答案 0 :(得分:3)

您可以使用.map()获取一系列复选框ID,如下所示:

var cat_id = $(':checkbox:checked').map(function() {
               return this.id;
             }).get().join(',');

这将产生一个像"CheckBox1,Checkbox2,Checkbox3"这样的字符串,用于发送服务器端。在那里,您可以在字符串上执行.split(",")以获取要使用的ID数组。

答案 1 :(得分:0)

$('form')。serialize()可能有用 - 看看ajaxForm这真棒......

为您的复选框 - 将名称更改为'check_box []'并将值设置为cat_id而不是其ID。

然后你应该能够访问$ _POST ['cat_id],它应该是已发布值的数组。使用var_dump($ _POST ['cat_id']);

检查它

答案 2 :(得分:0)

尝试这样的事情:

var keysToDelete = '';
$('.check_box:checked').each(function() { 
  keysToDelete+= $(this).attr("id");
});

dataString= 'cat_id='+keysToDelete;
// continue down to the ajax post