本文实例讲述了Yii中CGridView实现批量删除的方法。分享给大家供大家参考,具体如下:
1. CGridView中的columns添加
1
2
3
4
5
6
7
|
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代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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程序设计有所帮助。