如何用 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
最后登录:17小时前
在线时长:275小时1分
最后登录:17小时前
在线时长:275小时1分
- 粉丝38
- 金钱59785
- 威望150
- 积分64035