yii2 批量删除
来源:互联网 发布:淘宝拍摄灯光布置图解 编辑:程序博客网 时间:2024/06/06 12:57
在yii中,是使用widget::GridView小部件做列表的,如果要使用checkbox,自己写估计要费一番周折,好在yii提供了CheckboxColumn, 这个类为我们提供了checkbox,我们可以直接使用。
'columns' => [
[
'class' => 'yii\grid\CheckboxColumn',
],
]
这样第一列的编号就显示为checkbox了
下面是添加批量删除按钮
我们可以使用table-footer,使用方法是
'showFooter'=>true,
'columns' => [
[
'class' => 'yii\grid\CheckboxColumn',
'footer' => '<button data-control="news" onClick="delete_all(this)">'.Yii::t('common', 'delete_all').'</button>',
'footerOptions' => ['colspan' => 3, 'class'=>'control'],
],
]
这样底部都会增加一行。
在使用colspan会出现问题, 因为GridView已经为我们生成了td,所以即使加上colspan,td个数还是不会减少,不过还好,网上有大神给出了解决方法,就是在某列下添加:
'footerOptions' => ['class'=>'hide'],
使用这个方法根据自己的表格和colspan选择隐藏多少列
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'showFooter'=>true, 'id' => 'grid_list', 'columns' => [ [ 'class' => 'yii\grid\CheckboxColumn', 'footer' => '<button data-control="news" onClick="delete_all(this)">'.Yii::t('common', 'delete_all').'</button>', 'footerOptions' => ['colspan' => 3, 'class'=>'control'], ], 'id', 'c.category', 'title', //'content:ntext', //'image', // 'keywords', // 'description', [ 'attribute' => 'create_time', 'format' => ['date', 'Y-m-d'], 'footerOptions' => ['class'=>'hide'], ], // 'update_time:datetime', [ 'attribute' => 'status', 'value' => function ($model) { return $model->getStatus($model->status); }, 'footerOptions' => ['class'=>'hide'], ], // 'out_link', 'sort', 'click', // 'lang', [ 'class' => 'yii\grid\ActionColumn', 'template' => '{update} {delete}', ], ], ]); ?>
接下来是点击按钮批量删除
在上面的footer中我使用了onClick="delete_all(obj)"
对应的js:
function delete_all(obj){ var control = $(obj).attr('data-control'); var ids = $("#grid_list").yiiGridView("getSelectedRows"); var ids_str = ids.join(","); if(confirm('确认删除么?')){ $.ajax({ type: "POST", url: "/admin/index.php?r="+control+"%2Fajax-deleteall", data: "ids_str="+ids_str, dataType: 'json', success: function(msg){ window.location.reload(); } }); } }
/* * 批量删除 */ public function actionAjaxDeleteall(){ $model = new News(); $condigtion = ''; $ids_str = ''; $ids_str = Yii::$app->request->post('ids_str'); if(!empty($ids_str)){ $condition = 'id in('.$ids_str.')'; $lists = $model->find()->where($condition)->all(); foreach ($lists as $key => $val) { //删除旧文件 if(!empty($val['image'])){ @unlink(Yii::getAlias('@mywebroot') . '/' . $val['image']); } } $model->deleteAll($condition); } echo json_encode("ok"); }
- yii2.0 批量删除
- yii2 批量删除
- 利用yii2 gridview实现批量删除案例
- YII2 jquery全选 反选 全不选 批量删除 分页
- YII2 jquery全选 反选 全不选 批量删除 分页
- Yii2 删除
- yii2批量入库
- Yii2批量插入数据
- yii2批量插入数据
- yii2- 批量添加
- yii2 批量群发邮件
- yii2批量添加的问题
- yii2框架中批量修改
- yii2框架中批量上传
- Yii2之批量插入数据
- yii2 批量添加数组数据
- Yii2 开启事务 批量插入
- Yii2.0 批量插入数据
- STM32启动文件详解1
- SVN : Working copy is too old (format 10, created by Subversion 1.6)
- 崩溃的Python学习过程2——ImportError: No module named PIL(windows)
- 开发环境部署
- 1185: 添加记录(结构体专题)
- yii2 批量删除
- iOS NSURLSession Https请求
- java日期工具类
- Boom环境的搭建
- HDU 4121 Xiangqi
- 【邮件群发】许可式邮件的几种营销策略
- Struts2(二)
- jquery 限制文本框只能输入数字
- java-Date、SimpleDateFotmat、Calendar