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