整理文档,搜刮出一个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