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

前端技术 2023/09/08 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程序设计有所帮助。

本文地址:https://www.stayed.cn/item/21268

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。