0

我会描述我想做什么。

我有从数据库导入数据的表,对于每一行,我都有一个带有数据库 ID(主键)的复选框。它看起来像这样。

cb = 复选框

cb id=1 | 姓名 | 内容 | 呜呜呜

等等。

我可以一次删除 1 行,但我想通过检查多个 cheboxes 并按下删除按钮来删除多行。一旦你检查了它们中的任何一个,我就考虑将这些复选框 id 存储到数组中,然后在我按下按钮删除选定的复选框时执行一个循环。

我的单个删除按钮代码如下所示(此按钮使用自己的 ID 进行删除,与同一行上的复选框相同):

$('.del').click(function(){
var myid = $(this).attr('id');
$.post('newsdel.php', {delete_id:myid}, function(data) {
    if(data == 'true') {
        $('#'+myid).fadeOut();
        var rowCount = $('#count tr').length;
        if(rowCount < 3) {
        window.location = '?news=1';
        }
        } else {
        alert('Could not delete!');
        }
    });
});
4

2 回答 2

1

考虑到你的复选框有类复选框

function getCheckedRows() {
var checkedRows = [];
  $('.checkbox').each(function() {
      if($(this).is(':checked')) {
          checkedRows.push($(this).attr('id'); //assuming id is the row id 
      } 
  });
return checkedRows;
}
$('.del').click(function(){
var rowIds = getCheckedRows();
for(var myid in rowIds) {
   $.post('newsdel.php', {delete_id:myid}, function(data) {
    if(data == 'true') {
        $('#'+myid).remove();
        var rowCount = $('#count tr').length;
        if(rowCount < 3) {
        window.location = '?news=1';
        }
        } else {
        alert('Could not delete!');
        }
    });
}
});
于 2013-07-25T09:53:43.287 回答
0

这只是解决方案之一:
首先添加到每个复选框 css 类,如:“checkbox-option”以删除按钮添加 css 类“delete-btn”

然后这个jQuery代码:

 $('.delete-btn').click(function(){
      $('.checkbox-option').each(function(){
      if($(this).is(':checked'){
      //then goes larger part of your code: 
      var myid = $(this).attr('id');
        $.post('newsdel.php', {delete_id:myid}, function(data) {
         if(data == 'true') {
            $('#'+myid).fadeOut();
            var rowCount = $('#count tr').length;
            if(rowCount < 3) {
            window.location = '?news=1';
            }
            } else {
            alert('Could not delete!');
            }
         });
      }

       });
    });

这是在使用您的部分代码时的情况,但它会为每个代码发送 ajax 请求。另一种方法是在迭代时收集数组中的所有 id(然后序列化)或用逗号分隔(然后在服务器端脚本中拆分),然后发送一个 ajax 请求。

于 2013-07-25T09:57:24.980 回答