0

我面临以下问题。我有一个用户概览,我希望可以删除多个用户。因此,如果我检查用户 1(用户 ID 1)和用户 2(用户 ID 2),他们都会删除。

我想在我的 URL 中设置它,例如:localhost/cms/users/multipledelete/1&2,所以使用 &.

当我把那个 url 放在我的浏览器中时,我的删除工作已经完成。在我的javascript中,我有以下代码:

    $('.checkbox').click(function() {
    if($(".checkbox").length == $(".checkbox:checked").length) {
            $("#checkall").prop('checked', this.checked);
        } else {
            $("#checkall").removeAttr("checked");
        }                     
});

在我的索引中,我设置了以下代码:

<td>
<input type="checkbox" class="checkbox" name="check_list[]" value="<?php echo $user->id; ?>"/>
</td>
<td> ....... </td>

在我的概览下方,我想将 url 设置为:multipledelete/1&2

              <a href="<?php echo $this->url('zfcadmin/user', array('action'=>'multipledelete', 'id'=>'1&2'));?>">
                   <i class="icon-trash"></i>
              </a>

所以 1&2 在哪里,我想要当前选中的复选框。我怎样才能解决这个问题?

4

1 回答 1

3

您需要使用 JavaScript 来生成1&2字符串。像这样的东西(用 jQuery 编写)应该可以工作:

$('.checkbox:checked').map(function() {
    return this.value;
}).get().join('&');

打破它:

  • $('.checkbox:checked')选中checked复选框;
  • .map(function() { return this.value; })生成一个包含其值数组的 jQuery 对象;
  • .get()将其作为实际数组返回
  • .join('&')返回一个字符串,将数组的每个元素与&

我创建了一个基本的jsFiddle 演示,因此您可以看到上面的结果。

现在您需要在单击链接时调用它(可能最好给它一个idclass以便您可以选择它),以便它根据检查的内容是动态的:

$('#anchor-id').click(function(e) {
    e.preventDefault(); // don't follow the link
    var idString = $('.checkbox:checked').map(function() {
        return this.value;
    }).get().join('&');
    window.location.href = this.href + idString;
});

您将标签的href属性<a>设为静态部分,因此localhost/cms/users/multipledelete/.

于 2013-04-12T10:08:13.410 回答