当前位置:首页 > CMS教程 > 其它CMS > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-02 11:31:53 浏览: 评论:0 

这篇文章主要介绍了Yii中CGridView实现批量删除的方法,实例分析了CGridView的相关设置,前台JS调用与后台Action具体功能实现的技巧,需要的朋友可以参考下。

本文实例讲述了Yii中CGridView实现批量删除的方法,分享给大家供大家参考,具体如下:

1. CGridView中的columns添加:

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

作用是添加多选框

2.js代码

  1. <script type="text/javascript"
  2. /*<![CDATA[*/ 
  3. var GetCheckbox = function (){ 
  4.  var data=new Array(); 
  5.  $("input:checkbox[name='selectdel[]']").each(function (){ 
  6.   if($(this).attr("checked")==true){ 
  7.     data.push($(this).val()); 
  8.   } 
  9.  }); 
  10.  if(data.length > 0){ 
  11.   $.post('<?php echo CHtml::normalizeUrl(array('/admin/words/delall/'));?>',{'selectdel[]':data}, function (data) { 
  12.    var ret = $.parseJSON(data); 
  13.    if (ret != null && ret.success != null && ret.success) { 
  14.     $.fn.yiiGridView.update('yw1'); 
  15.    } 
  16.   }); 
  17.  }else
  18.   alert("请选择要删除的关键字!"); 
  19.  } 
  20. /*]]>*/ 
  21. </script> 

3.Action

  1. public function actionDelall() 
  2.  if (Yii::app()->request->isPostRequest) 
  3.  { 
  4.   $criterianew CDbCriteria; 
  5.   $criteria->addInCondition('id'$_POST['selectdel']); 
  6.   Words::model()->deleteAll($criteria);//Words换成你的模型 
  7.   if(isset(Yii::app()->request->isAjaxRequest)) { 
  8.    echo CJSON::encode(array('success' => true)); 
  9.   } else { 
  10.    $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index')); 
  11.   } 
  12.  } 
  13.  else 
  14.   throw new CHttpException(400,'Invalid request. Please do not repeat this request again.'); 

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

Tags: Yii批量删除 CGridView

分享到: