通过jquery删除多个用户复选框


delete multiple users by jquery checkbox

我在phpbb3自定义页面中列出了我的朋友信息(用户名与头像),我需要通过检查复选框删除多个用户。

这是我的源代码,但我不知道为什么它不工作。

<form method="post" action="delete.php" class="form-inline">
<!-- BEGIN friends -->
<ul class="friends">
    <li id="{friends.F_ID}.li">
        <div class="media-group">
                <a class="pull-left" title="{friends.F_USERNAME}">
                    <img class="media-object img-circle img-avatar" src="{friends.F_AVATAR}">
                </a>
            <div style="width:30px; height:30px;">
            <input type="checkbox" name="friends[]" id="{friends.F_ID}">
            </div>
            <a href="#"><h4 class="media-heading">{friends.F_USERNAME}</h4></a>
            <span class="span-block">123..</span>
            <span class="span-block">{LAST_VISIT_DATE}</span>
        </div>
    </li>
</ul>
<!-- END friends -->
<button id="delete_friends" name="delete_friends" type="submit">Delete Friends</button>
</form>

我的javascript是这样的:

<script>
$("#delete_friends").click(function(){
var data = {'friends[]' : []};
$(":checked").each(function() {
 data['friends[]'].push($(this).val());
});
if (confirm("Are you sure you want to delete "+data+"?"))
{
    $("#loading_full").fadeIn('fast');
    $.post("delete.php", { user_id:'<?php echo $user_id; ?>' , friend_username : data })
    .done(function(data) {
    alert(data);
        if (data.toLowerCase().indexOf("success delete") >= 0){
            $("#"+data+"li").fadeOut('fast');
            $("#loading_full").fadeOut('fast');
        }
    })
    .fail(function(){
     });
     return false;
}
});
</script>

我认为你初始化数组的方式不太好,你可以这样做:

var data = {'friends' : []};

这是因为无论如何你都将'friends'设置为数组;

则推data['friends[]'].push("some value");

我认为你最好这样写:

var friends = new Array();
$(":checked").each(function() {
 friends.push($(this).val());
});
var data = {'friends' : friends};

我试图清除如何从下面的多个选定复选框中获取值的概念。我希望这对你有帮助。

在HTML中使用

<input type="checkbox" name="friends[]" value="{friends.F_ID}" id="{friends.F_ID}">

代替<input type="checkbox" name="friends[]" id="{friends.F_ID}">

HTML:

<form method="post" action="delete.php" class="form-inline">
<!-- BEGIN friends -->
<ul class="friends">
<li id="{friends.F_ID}.li">
    <div class="media-group">
            <a class="pull-left" title="{friends.F_USERNAME}">
             <img class="media-object img-circle img-avatar" src="{friends.F_AVATAR}">
            </a>
        <div style="width:30px; height:30px;">
        <input type="checkbox" name="friends[]" value="{friends.F_ID}" id="{friends.F_ID}">
        </div>
        <a href="#"><h4 class="media-heading">{friends.F_USERNAME}</h4></a>
        <span class="span-block">123..</span>
        <span class="span-block">{LAST_VISIT_DATE}</span>
    </div>
</li>
</ul>
<!-- END friends -->
<button id="delete_friends" name="delete_friends" type="submit">Delete Friends</button>

PHP提交代码

if(isset($_POST["submit"]) && $_POST["submit"]!="")
{
    $usersCount = count($_POST["friends"]);
    for($i=0;$i<$usersCount;$i++)
    {
       //mysql_query  // friends.F_ID = $_POST["friends"][$i]
    }
}