本文实例讲述了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"));} } elsethrow new CHttpException(400,"Invalid request. Please do not repeat this request again.");}希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。