CGridView中实现批量删除 [ 技术分享 ]
1,CGridView中的columns添加
array(
'selectableRows' => 2,
'footer' => '<button type="button" onclick="GetCheckbox();" style="width:76px">批量删除</button>',
'class' => 'CCheckBoxColumn',
'headerHtmlOptions' => array('width'=>'33px'),
'checkBoxHtmlOptions' => array('name' => 'selectdel[]'),
),
作用是添加多选框 2.js代码
<script type="text/javascript">
/*<![CDATA[*/
var GetCheckbox = function (){
var data=new Array();
$("input:checkbox[name='selectdel[]']").each(function (){
if($(this).attr("checked")==true){
data.push($(this).val());
}
});
if(data.length > 0){
$.post('<?php echo CHtml::normalizeUrl(array('/admin/words/delall/'));?>',{'selectdel[]':data}, function (data) {
var ret = $.parseJSON(data);
if (ret != null && ret.success != null && ret.success) {
$.fn.yiiGridView.update('yw1');
}
});
}else{
alert("请选择要删除的关键字!");
}
}
/*]]>*/
</script>
3.Action
public function actionDelall()
{
if (Yii::app()->request->isPostRequest)
{
$criteria= new CDbCriteria;
$criteria->addInCondition('id', $_POST['selectdel']);
Words::model()->deleteAll($criteria);//Words换成你的模型
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.');
}
图片 [attach]183[/attach]
共 26 条回复
-
lz19881123 回复于 2011-08-29 09:09 举报
是不是checkbox的属性没取到?
-
278893912qq 回复于 2011-09-14 17:23 举报
我也会去研究一下啊
-
<script type="text/javascript"> var GetCheckbox = function (){ var data=new Array(); $(":checkbox:checked").each(function (){ data.push($(this).val()); }); if(data.length > 0){ //alert(data); $.ajax({ url:"<?php echo $this->createUrl('target/mutidelete');?>", type:"POST", data:{'select[]':data}, success:function(data){ $.fn.yiiGridView.update('target-grid'); } }); }else{ alert("请选择要删除行!"); } } </script>
仿自楼主 哈哈 没有楼主的严谨 经测好使
-
遇到问题了就看看这个讨论
心血来潮 10:41:59
http://www.yiichina.com/topic/469
我也是遇到这个问题我现在点击《批量删除》提示“请选择要删除的关键字”,不管选择还是没有选择都提示这个。
舰长妹夫㊣(8323216) 10:43:33
看js呀var data=new Array(); $("input:checkbox[name='selectdel[]']").each(function (){ if($(this).attr("checked")==true){ data.push($(this).val()); } }); var GetCheckbox = function (){ var data=new Array(); $("input:checkbox[name='selectdel[]']").each(function (){ if($(this).attr("checked")==true){ data.push($(this).val()); } }); if(data.length > 0){
心血来潮 10:43:58
if($(this).attr("checked")==true)
这句话没通过
舰长妹夫㊣ 10:44:39
alert $(this).attr("checked")
如果输出 true和false 你就用if($(this).attr("checked")==true)
调试一下就好了
心血来潮 10:45:50
输出checked……
舰长妹夫㊣ 10:46:29
如果输出 checked 你就用if($(this).attr("checked")=='checked')
心血来潮 10:46:43
skye 深圳
注册时间:2011-04-12
最后登录:2013-06-18
在线时长:0小时0分
最后登录:2013-06-18
在线时长:0小时0分
- 粉丝2
- 金钱575
- 威望0
- 积分575