skye 2011-05-27 17:21:46 13892次浏览 26条回复 3 0 0

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]

  • 回复于 2011-09-02 16:43 举报

    问题解决 , 特来感谢楼主, 楼主代码成功运用

  • 回复于 2011-09-02 16:14 举报

    data 输出出来就是 表的ID , 选中复选框的值

    但这断代码似乎发送不了到 控制层里去?

    这个用AJAX发送, 怎么知道有没有发送到控制层, 谢谢楼主解答

  • 回复于 2011-09-02 11:16 举报

    把data中的数据输出来看看

  • 回复于 2011-08-29 09:09 举报

    是不是checkbox的属性没取到?

  • 回复于 2011-08-27 13:08 举报

    我现在点击《批量删除》提示“请选择要删除的关键字”,不管选择还是没有选择都提示这个。我查看了checkboxr的名字,js代码都正确无误,可是为什么获取不到checkbox的值呢?我真是想不明白呀?(我使用了楼主提供的代码)

  • 回复于 2011-08-26 17:23 举报

    在我所见的Yii blog中还没有js代码,那么这段js代码怎么放在视图中呢?

您需要登录后才可以回复。登录 | 立即注册