【问题标题】:Jquery select multiple checkboxesJquery选择多个复选框
【发布时间】:2010-07-31 10:16:46
【问题描述】:

我有一个与复选框配对的类别列表。我找不到任何有关如何将所有选定的复选框存储在 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。

【问题讨论】:

    标签: jquery checkbox


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      检查它

      【讨论】:

      • 谢谢!我会试试这个:) serialize() 似乎是一个方便的函数
      【解决方案3】:

      试试这样的:

      var keysToDelete = '';
      $('.check_box:checked').each(function() { 
        keysToDelete+= $(this).attr("id");
      });
      
      dataString= 'cat_id='+keysToDelete;
      // continue down to the ajax post
      

      【讨论】:

      • 酷这也有效!谢谢!!你知道如何在 id 之间放置空格吗?它显示为 cat_id=1234567
      • 更改这一行:keysToDelete+= ","+$(this).attr("id") 然后加上 if (keysToDelete.length > 0) keysToDelete = keysToDelete.substr(1);在每个函数结束之后。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多