本文实例讲述了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程序设计有所帮助。