Yii CGridView 中实现批量删除

本文介绍如何使用CGridView实现批量删除功能,包括配置多选框、JavaScript交互代码以及后端处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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.');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值