如何用 yii.gridView.js 提供的方法清空已选择的选项? [ 2.0 版本 ]
PHP代码如下:
<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        [
            'class' => 'yii\grid\CheckboxColumn',
        ],
        'id',
        'title',
        ……
    ],
]); ?>
JS代码如下:
$("#button").on("click", function(){
    var keys = $('#grid').yiiGridView('getSelectedRows');
    if(keys.lenth > 0){
        $.post('article/delete.php', {id:keys}, function(data, textStatus){
            alert('成功');
            
            // 清空已选择
            
        });
    }
});
问题:如何用yii.gridView.js提供的方法清空已选择的选项??
                墨轩娣 补充于 2018-11-23 08:50
                
                                    
            
            或者用什么方法实现表单提交,但操作不止删除,还有更改状态等其它操作
最佳答案
- 
                                                

'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'options'=>['id'=>'grid','class'=>'grid-view'],//给表单加个id,要在jQquery中使用 'layout' => '{items}<div class="clear-fix"><a id="setgood" href="javascript:void(0)" class="btn btn-primary">设置精华</a>    <a id="setnotgood" href="javascript:void(0)" class="btn btn-warning">取消精华</a></div>'{summary}{pager}{errors}<input "id"="setflagurl" name="setflagurl" type="hidden" value="'.Url::to(['setflags']).'" ></div>',//在模板中添加要操作的按钮和要提交的网址 'columns' => [ ['class'=>'yii\grid\CheckboxColumn'], <?php $js=<<<JS function setflag(value,option){ var url=$('input[name=setflagurl]').val(); //获取选择的记录项 var ids = $('#grid').yiiGridView('getSelectedRows'); //要传csrf,否则无法通过验证 var csrf=$('input[name=_csrf]').val(); //使用ajax的post提交,在控制器中添加action执行相应的操作即可 $.ajax({ type:'POST', url:url, data:{ ids:ids, option:option, value:value, _csrf:csrf }, dataType:'json', success:function(msg){ //ajax返回信息的处理,如果有错误则报错 if(msg.error){ alert(msg.error); }else{ //成功则重载当前页面 location.reload(true); } }, error:function(XMLHttpRequest,textStatus,errorThrown){ // alert(XMLHttpRequest.status); } }); } //执行点击操作 $("#setgood").click(function(e){ setflag(1,'is_good'); }); $("#setnotgood").click(function(e){ setflag(2,'is_good'); }); JS; $this->registerJs($js); ?>共 1 条回复 
其他 1 个回答
- 
return19931112 回答于 2018-11-23 09:37 举报可以试试这个
$ php composer.phar require kartik-v/yii2-grid "dev-master" 
墨轩娣 无锡
            注册时间:2015-03-25
最后登录:14小时前
在线时长:287小时13分
    最后登录:14小时前
在线时长:287小时13分
- 粉丝38
 - 金钱66145
 - 威望150
 - 积分70515