从复选框值中取出URL。 mvc模式

时间:2013-04-12 09:55:25

标签: php javascript jquery arrays checkbox

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

我想在我的网址中设置此项:localhost/cms/users/multipledelete/1&2,所以使用& amp。

当我在浏览器中输入该网址时,我的删除工作已全部完成。在我的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>

在我的概述之下我的回收站我要将网址设置为:multipledelete / 1&amp; 2

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

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

1 个答案:

答案 0 :(得分: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 demo,因此您可以看到上述结果。

现在您需要在点击链接时调用它(可能最好给它一个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/