TP 框架和 Laravel 框架使用 Ajax 完成批量删除几乎一模一样,两者并无太大区别
批量删除的要点就一点,获取到所选中的复选框的 ID,只要取到 ID,剩下的就好办了
完整代码在最下方
第一步:
给复选框和批删按钮设置上点击事件,批删按钮可用 ID 或 Class 设置点击事件,而复选框只能使用 Class 设置点击事件,因为 ID 我们要进行赋值,取到所有复选框的 ID
// 批删按钮点击事件
<button type="button" id="delAll">批删</button>
// 复选框点击事件 , 这里我使用了循环,所以 ID 为 val.id(循环遍历ID)
<input type="checkbox" id="{$val.id}" class="btns">
第二步:
引用 JS,并起一个 ID 数组,进行赋值
第三步:
书写 Aajx 进行传值
第三步:
到达控制层接收 ID ,接收到 ID 后实例化对象传到模型层进行操作
第四步:
到达模型层完成删除的操作,直接使用 destroy 实现删除即可
第五步:
在到达控制层进行判断是否删除成功,删除成功直接返回 Json 形式的数据(大部分不会失败)
第六步:
到达 Ajax 返回值,进行判断传回参数是否正确,判断成功的话直接把所有祖先元素的段落删除
完整代码
HTML
// 批删按钮点击事件
<button type="button" id="delAll">批删</button>
// 复选框点击事件 , 这里我使用了循环,所以 ID 为 val.id(循环遍历ID)
<input type="checkbox" id="{$val.id}" class="btns">
// Js代码块
<script>
$("#delAll").click(function ()
{
// 起一个名为ID的数组
var id = [];
$(".btns:checked").each(function()
{
// 获取到已被选中复选框的ID并赋值
id.push($(this).prop("id"));
});
// 进行ajax处理
$.ajax({
// 传值位置
url:'delAll',
// 传值方式
type:'get',
// 传值内容
data:{id:id},
// 返回值类型
dataType:'json',
// 返回值
success:function (e)
{
// 打印返回值
console.log(e);
// 判断返回值是否正确
if(e.code==600)
{
// 判断成功,把所有被选中的复选框祖先元素的段落删除
$(".btns:checked").parents('tr').remove();
}
}
});
});
</script>
控制器
// 批量删除的控制器
public function delAll()
{
// 获取到ID值
$id = $_GET["id"];
// 实例化对象
$obj = new \app\model\user();
// 判断是否成功
$res = $obj->delAll($id);
if($res)
{
// 成功返回值json的值
return json([
'code'=>'600',
'msg'=>'成功',
'data'=>'',
]);
}
}
模型层
public function delAll($id)
{
return $this->destroy($id);
}