Yii学习笔记之CGridView数据列表添加复选框提供多选批量删除、更新等功能
Yii框架是一个很方便又好用的框架,就是文档上不是那么的完善,有很多东西需要挖掘代码。
近日,使用Yii框架开发的时候,就遇上了这么一些问题,需要为CGridView列表提供复选框功能,方便同时批量更新多条数据。
以下是步骤:
1. columns中增加一列放置checkbox
2. widget下添加div放置操作按钮
3. 添加CheckAll和Ajax提交数据
完整代码如下:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'user-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'selectableRows' => 2,
'class' => 'CCheckBoxColumn',
'headerHtmlOptions' => array('width'=>'18px','align'=>'center'),
'checkBoxHtmlOptions' => array('name' => 'ids[]','align'=>'center'),
),
'id',
'username',
'email',
'phone',
array('name'=>'status','type'=>'raw','value'=>'($data->status>0?"正常":"禁用")'),
array('name'=>'created','type'=>'date'),
array('name'=>'updated','type'=>'date'),
array(
'class'=>'CButtonColumn',
),
),
)); ?>
<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 ;
}
$.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>
最后,提供一个示例图,仅供参考:
您可能感兴趣的文章:
php面向对象框架有哪些
php用什么软件编程
Jquery实战_读书笔记1—选择jQuery
flask如何更新数据库
良心推荐的五大敏捷好用的PHP开发框架
高性能mysql(第二版)学习笔记之架构优化和索引
mysql的存储过程与触发器学习笔记
防订单重复提交策略方法
PHP面试题大全(值得收藏)
批量添加防火墙例外端口的批处理脚本学习