如何通过AJAX传递多个CheckBox值并处理它们?

时间:2012-01-23 20:10:46

标签: php mysql ajax

晚上好人,

我正在尝试通过AJAX传递多个复选框值,并使用外部.php脚本处理它们。目标:使用复选框删除多行而不刷新页面。

请协助我将选中的复选框传递到数据字符串,并将它们放在外部.php文件中的mysql命令中。这是到目前为止的代码:

复选框:

<form name="frmMain" id="myForm" method="post" OnSubmit="return onDelete();">


<input class="checkbox_button_del" type="submit" id="buttondel" value="Delete" /> // submit to ajax


<input type="checkbox" class="cb-element" name="chkDel[]" id="chkDel<?=$i;?>" value="' .($id). '">


<input type="hidden" name="hdnCount" value="<?=$i;?>">
</form>

AJAX:

$(function () {
    $(".checkbox_button_del").click(function () {
        var id = $(this).attr("id");
        var dataString = 'id=' + id; //pass checkbox ids somehow
        var parent = $(this).parents('tr:first');


        $.ajax({
            type: "POST",
            url: "core/actions/delete_multiple.php",
            data: dataString,
            cache: false,

            success: function () {
                parent.fadeOut('300', function () {
                    $(this).remove();
                });
                $("#display").load("display.php")

            }
        });

        return false;
    });
});   

删除脚本:

// receive checkbox ids from ajax and delete rows

    for($i=0;$i<count($_POST["chkDel"]);$i++)
    {
        if($_POST["chkDel"][$i] != "")
        {
            $strSQL = "DELETE FROM players ";
            $strSQL .="WHERE id = '".$_POST["chkDel"][$i]."' ";
            $objQuery = mysql_query($strSQL);
        }
    }

2 个答案:

答案 0 :(得分:1)

jQuery内置了这个功能。

请参阅:http://api.jquery.com/serialize/

答案 1 :(得分:1)

您可以将所有复选框放在表单中。然后在函数中添加以下行:

datastring = $('#myform').serialize();