这是一个通过异步来批量删除记录的方法。首先给每条记录加个勾选框,也就是checkbox。
当checkbox被勾选中时,该勾选框的值为checked,通过jq选择器把含checked属性的checkbox选出来并获取该值,并放进一个数组。
在异步提交中把数组变成json字符串传到php文件中进行处理,数组到达PHP文件中的格式为["123","321"],这时候就需要除去[]这符号通过trim函数,然后就进行数据库操作,完成返回成功1 或失败0。
最后在回调函数中动态去掉选中的纪录(在数据库中已经删除成功)
前端代码:
<a class="btn btn-primary btn-xs" onclick="deletes()">删除勾选项</a>
<input type="checkbox" name="check" value="1">
JavaScript代码:
function deletes() {
var str =[];
$("input[name='check']:checkbox").each(function(){
if($(this).prop("checked")==true){
str.push($(this).val());
}
});
if(confirm("确定要删除么?")){
$.post("action.php",
{
action:'deleteusers',
userid:JSON.stringify(str)
},
function(result){
if(result){
alert('删除成功!');
$("input[name='check']:checkbox").each(function(){
if($(this).prop("checked")==true){
$(this).parents('tr').remove();
}
});
}else {
alert('删除失败!')
}
});
}
}
php代码:
$userid = "";
if (isset($_REQUEST['userid']) && $_REQUEST['userid'] != "") {
$userid = trim($_REQUEST['userid'],"[]");
}
$sql = "delete from yufuyuan.myuser where id IN ({$userid})";
// echo $sql;
$res = $pdo->exec($sql);
if ($res) {
echo 1;
} else {
echo 0;
}