前端之家收集整理的这篇文章主要介绍了
ThinkPHP删除栏目(实现批量删除栏目),
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@前段时间发表了一个删除栏目的随笔,当时实现的功能是删除一条信息,这次来实现一下批量删除栏目。
@H_
301_0@<span style="color: #0000ff">
我们需要达到的是这样一个效果:
<p style="text-align: center">

@H_
301_0@选中批量
删除按钮后可以选中所有该
页面的栏目,这个是前端
页面的实现,在这里就不多说了,我们直接进入正题:批量
删除的
功能。
@H_
301_0@1.前端
页面这里也有一个小小的点,就是选择框的name值应给给他赋值为一个id的数组,value值为该栏目的id。
@H_
301_0@2.我们在控制器中单独写一个批量
删除的
方法
<div class="jb51code">
<pre class="brush:php;">
public function privilege_bdel(){
$ids = I('ids');
$pri = D('privilege');
$ids = implode(',',$ids);
if($ids){
if($pri->delete($ids)){
$this->success('批量
删除栏目成功!',U('Privilege/privilege_lst'));
}else{
$this->error('批量
删除栏目失败,请重试!');
}
}else{
$this->error('未选中任何
内容,请重试!');
}
}
public function _before_delete($options){
//批量删除
if(is_array($options['where']['id'])){
$arr = explode(',$options['where']['id'][1]);
$sonpri = array();
foreach ($arr as $k => $v) {
$sonpri2 = $this->childid($v);
$sonpri = array_merge($sonpri,$sonpri2);
}
$sonpri = array_unique($sonpri);
$chilrenids = implode(',$sonpri);
}else{//单个
删除
$chilrenids =$this->childid($options['where']['id']);
$chilrenids = implode(',$chilrenids);
}
if($chilrenids){
$this->execute("delete from ed_privilege where id in($chilrenids)");
}
}
_0@将传过来的字符串转化为不带逗号的数组形式存在$arr中,建立一个空数组$sonpri,然后foreach遍历,这里先查找出所有的子栏目id(会用childid