本文实例讲述了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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我