Yii CGridView 中实现批量删除

1.在视图中 CGridView中的columns添加

              array(
                            'selectableRows' => 2,
                            'footer' => '<button type="button" onclick="GetCheckbox();" style="width:76px">批量删除</button>',
                            'class' => 'CCheckBoxColumn',
                            'headerHtmlOptions' => array('width'=>'33px'),
                            'checkBoxHtmlOptions' => array('name' => 'selectdel[]'),
                    ),

作用是添加多选框


2.js代码

<script type="text/javascript">
    function GetCheckbox(){
            var data=new Array();
            $("input:checkbox[name='selectdel[]']").each(function (){
                    if($(this).attr("checked")==true){
                            data.push($(this).val());
                    }
            });
            if(data.length > 0){
                    $.post("index.php?r=ip/delall",{'selectdel[]':data}, function (data) {
                            if (data=='ok') {
                                    alert('删除成功!');
         window.open('index.php?r=ip/admin','indexFrame');;
                          }
                    });
            }else{
                    alert("请选择要删除的选项!");
            }
    }
</script>

3.Action

/*
 * 作用:批量删除
 */
  public function actionDelall()
 {
   if (Yii::app()->request->isPostRequest)
   {
     $criteria= new CDbCriteria;
     $criteria->addInCondition('ip_id', $_POST['selectdel']);
     Ip::model()->deleteAll($criteria);//Words换成你的模型 
     if(isset(Yii::app()->request->isAjaxRequest)) {
       echo 'ok';
     } else
       $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
   }
   else
     throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
 }


你可能感兴趣的:(Yii CGridView 中实现批量删除)