Yii中CGridView实现批量删除的方法

5年以前  |  阅读数:845 次  |  编程语言:PHP 

本文实例讲述了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">
    /*<![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.');
    }

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例