Yii 批量删除
2014-04-30 16:06
357 查看
1.首先,写button按钮:
视图中,columns下面声明checkbox代码:
例子如下:
<?php $this->widget('admin.widgets.GridView', array(
'id'=>'app-comment-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'selectableRows' => 2,
'footer' => '<button type="button" onclick="GetCheckbox();" style="width:72px">批量删除</button>',
'class' => 'CCheckBoxColumn',
'headerHtmlOptions' => array('width'=>'33px'),
'checkBoxHtmlOptions' => array('name' => 'selectdel[]'),
),
array(
'header'=>'App图标',
'type'=>'raw',
'value'=>'CHtml::link(CHtml::image($data->app->getIcon57x57()), $data->app->getQianUrl(),array("target"=>"_blank"))',
'htmlOptions'=>array(
'width'=>'57',
'height'=>'57',
'style'=>'text-align:center',
),
array(
'header'=>'操作',
'class'=>'CButtonColumn',
'headerHtmlOptions'=>array(
'width'=>'40',
),
'template'=>'{update}{delete}', //默认显示的三个按钮,要去掉某个按钮,删除相应项即可
),
),
)); ?>
<script type="text/javascript">
/*<![CDATA[*/
var GetCheckbox = function (){
var data=new Array();
$("input:checkbox[name='selectdel[]']").each(function (){
if($(this).is(":checked")){
data.push($(this).val());
}
});
if(data.length > 0){
if(confirm('确定要删除选中的留言吗?')){
$.post('<?php echo CHtml::normalizeUrl(array('/admin/appComment/delall/'));?>',{'selectdel[]':data}, function (data) {
var ret = $.parseJSON(data);
if (ret != null && ret.success != null && ret.success) {
$.fn.yiiGridView.update('app-comment-grid');
}
});
}else
return false;
}else{
alert("请选择要删除的留言!");
}
}
/*]]>*/
</script>
2.js中post请求的控制器中写逻辑代码:
public
function actionDelall()
{
if
(Yii::app()->request->isPostRequest)
{
$criteria
=
new
CDbCriteria;
$criteria->addInCondition('id',
$_POST['id']);
News::model()->deleteAll($criteria);
//News换成你的模型
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.');
}
视图中,columns下面声明checkbox代码:
array( 'class' => 'CCheckBoxColumn', 'selectableRows' => 2, 'footer' => '<button type="button" onclick="GetCheckbox();" style="width:76px">批量删除</button>', 'checkBoxHtmlOptions' => array('name' => 'id[]'), //name在js中会用到 ),
例子如下:
<?php $this->widget('admin.widgets.GridView', array(
'id'=>'app-comment-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'selectableRows' => 2,
'footer' => '<button type="button" onclick="GetCheckbox();" style="width:72px">批量删除</button>',
'class' => 'CCheckBoxColumn',
'headerHtmlOptions' => array('width'=>'33px'),
'checkBoxHtmlOptions' => array('name' => 'selectdel[]'),
),
array(
'header'=>'App图标',
'type'=>'raw',
'value'=>'CHtml::link(CHtml::image($data->app->getIcon57x57()), $data->app->getQianUrl(),array("target"=>"_blank"))',
'htmlOptions'=>array(
'width'=>'57',
'height'=>'57',
'style'=>'text-align:center',
),
array(
'header'=>'操作',
'class'=>'CButtonColumn',
'headerHtmlOptions'=>array(
'width'=>'40',
),
'template'=>'{update}{delete}', //默认显示的三个按钮,要去掉某个按钮,删除相应项即可
),
),
)); ?>
<script type="text/javascript">
/*<![CDATA[*/
var GetCheckbox = function (){
var data=new Array();
$("input:checkbox[name='selectdel[]']").each(function (){
if($(this).is(":checked")){
data.push($(this).val());
}
});
if(data.length > 0){
if(confirm('确定要删除选中的留言吗?')){
$.post('<?php echo CHtml::normalizeUrl(array('/admin/appComment/delall/'));?>',{'selectdel[]':data}, function (data) {
var ret = $.parseJSON(data);
if (ret != null && ret.success != null && ret.success) {
$.fn.yiiGridView.update('app-comment-grid');
}
});
}else
return false;
}else{
alert("请选择要删除的留言!");
}
}
/*]]>*/
</script>
2.js中post请求的控制器中写逻辑代码:
public
function actionDelall()
{
if
(Yii::app()->request->isPostRequest)
{
$criteria
=
new
CDbCriteria;
$criteria->addInCondition('id',
$_POST['id']);
News::model()->deleteAll($criteria);
//News换成你的模型
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.');
}
相关文章推荐
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- js实现全选,全不选,反选,批量删除等(Yii)
- JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
- yii2.0 批量删除
- yii框架全选反选批量删除
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- yii 批量删除及CDBCriteria的常用方法
- yii gii自动生成的curd添加批量删除实例
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- Yii中CGridView实现批量删除的方法
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- Yii中CGridView实现批量删除的方法
- 如何批量删除Excel中的空白行
- python3.6深度学习图片集处理项目源代码(为cnn等准备图片集合,批量生成、删除、改名、旋转、调整图片大小,包括删除指定路径下所有文件)
- PHP 批量删除功能