整理文档,搜刮出一个Yii实现复选框批量操作实例代码,稍微整理精简一下做下分享。
在视图下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?php $this ->widget( 'zii.widgets.grid.CGridView' , array (
'id' => 'user-grid' ,
'dataProvider' => $model ->search(), //Model里需要有个search()方法,$model是Controller中传递的Model对象
// /'filter'=>$model,
'columns' => array (
array (
'selectableRows' => 2,
'class' => 'CCheckBoxColumn' ,
'headerHtmlOptions' => array ( 'width' => '18px' , 'align' => 'center' ),
'checkBoxHtmlOptions' => array ( 'name' => 'ids[]' , 'align' => 'center' ),
),
'homework_numberID' ,
'type' ,
'target' ,
'state' ,
'author_id' ,
array ( 'name' => 'state' , 'type' => 'raw' , 'value' => '($data->state =="not_read" ?"未读":"已审核")' ),
// array('name'=>'passRecord','type'=>'date'),
array ( 'name' => 'submit_time' , 'type' => 'date' ),
array (
'class' => 'CButtonColumn' ,
),
),
)); ?>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<select name= "status" id= "status" >
<option value= "1" >通过</option>
<option value= "0" >不通过</option>
</select>
<button type= "button" onclick= "setStatus();" style= "width:120px;" >设置状态</button>
<script type= "text/javascript" >
function getData(){
var data= new Array();
$( "input:checkbox[name='ids[]']" ).each( function (){
if ($( this ).attr( "checked" )){
data.push($( this ).val());
}
});
return data;
}
function setStatus(){
var data = getData();
if (data.length < 1) {
alert( '请至少选择一个项目。' );
return ;
}
//这里是传递的url post方法
$.post( "index.php?r=user/status" ,{ 'ids[]' :data, 'status' :$( '#status' ).val()}, function (data) {
if (data== 'ok' ) {
alert( '设置状态成功!' );
} else {
alert( '设置状态失败,请重试!' );
}
window.open( 'index.php?r=user/admin' , 'mainFrame' );;
});
}
</script>
|
在Model中的search()函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria = new CDbCriteria;
//$criteria->with = array('author'); //添加了和 author 的渴求式加载
// $this->state = "not_passed";
$criteria ->compare( 'state' , $this ->state);
//这里添加了一个 compare, username 是 User 表的字段,$this->name 是我们添加的属性,true 为模糊搜索
//$criteria->compare('username',$this->name,true);
return new CActiveDataProvider( $this , array (
'criteria' => $criteria ,
));
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/xujing19920814/article/details/62052624