Yii CGridView 中实现批量删除

来源:互联网 发布:淘宝会员有什么好处 编辑:程序博客网 时间:2024/05/21 06:53


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">
    /*<![CDATA[*/
    var GetCheckbox = function (){
            var data=new Array();
            $("input:checkbox[name='selectdel[]']").each(function (){
                    if($(this).attr("checked")==true){
                            data.push($(this).val());
                    }
            });
            if(data.length > 0){
                    $.post('<?php echo CHtml::normalizeUrl(array('/admin/words/delall/'));?>',{'selectdel[]':data}, function (data) {
                            var ret = $.parseJSON(data);
                            if (ret != null && ret.success != null && ret.success) {
                                    $.fn.yiiGridView.update('yw1');
                            }
                    });
            }else{
                    alert("请选择要删除的关键字!");
            }
    }
    /*]]>*/
    </script>
    
    
3.Action

    public function actionDelall()
            {
                    if (Yii::app()->request->isPostRequest)
                    {
                            $criteria= new CDbCriteria;
                            $criteria->addInCondition('id', $_POST['selectdel']);
                            Words::model()->deleteAll($criteria);//Words换成你的模型
                           
                            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.');
原创粉丝点击