yangguangqi8 2017-01-10 10:03:17 4319次浏览 1条评论 6 2 0

先上一下效果
QQ截图20170110095249.png

代码:1.控制器controller中增加逻辑

//批量删除
public function actionDelall() {  
    if (Yii::app()->request->isPostRequest){ 
        $criteria = new CDbCriteria;  
        $criteria->addInCondition('id', $_POST['id']);  
        Instation::model()->deleteAll($criteria);   

        if (isset(Yii::app()->request->isAjaxRequest)) {  
            echo CJSON::encode(array('success' => true));  
        } else{  
            $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));  
        }
    }else{  
        throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');  
    }    
}

2.视图View页面
在columns中增加如下代码,需要在什么位置,就加在什么位置

array(  

    'class' => 'CCheckBoxColumn',  
    'selectableRows' => 2,  
    'headerTemplate'=>'{item}  全选',
    'checkBoxHtmlOptions' => array('name' => 'id[]' ), //这里用数组保存,方便遍历删除
    'footer' => '<button type="button" onclick="GetCheckbox();" style="width:76px">批量删除</button>', 
   
),  

3.视图JS

<script type="text/javascript">  
function GetCheckbox(){  
    var data=new Array();  
    $('input:checkbox[name="id[]"]').each(function (){ 
        //根据上边定义checkbox名字获取选中项,然后放到数组  
          if($(this).is(':checked')===true){//注意,这里不能用checked=checked来判断,Yii自带表单好像默认没有checked这个属性
                    data.push($(this).val());
            }
    });  
    if(data.length > 0){  
        if (confirm("确认要删除?")) {  
            $.post('admin.php?r=admin/instation/DelAll',{'id[]':data}, function (data) {  
                var ret = $.parseJSON(data);  
                if(ret.success==true)  
                {  
                    location.reload();   
                }  
                else  
                {  
                    alert("删除失败,请重新操作.");  
                }  
            });  
        }  
    }else{  
        alert("请至少选择一项记录!");  
    }  
}   
</script>  
觉得很赞
您需要登录后才可以评论。登录 | 立即注册