yii2:Pjax+;Gridview删除不发送ajax请求

yii2:Pjax+;Gridview删除不发送ajax请求,gridview,yii2,pjax,Gridview,Yii2,Pjax,我将Pjax与Gridview一起使用,我希望我的所有操作按钮都使用ajax。默认情况下,它们不会,所以我在谷歌上搜索并找到了删除数据pjax=0的方法。但仍然没有ajax请求,它们都是常规请求 很多人都有这个问题,我也找不到解决办法 我遵循了: 我的代码: 试试这个。(我的工作代码) 首先在上面的Gridviewviews文件上注册JavaScript 这里是确认框 $this->registerJs(“ $(document).on('ready pjax:success',fun

我将Pjax与Gridview一起使用,我希望我的所有操作按钮都使用ajax。默认情况下,它们不会,所以我在谷歌上搜索并找到了删除数据pjax=0的方法。但仍然没有ajax请求,它们都是常规请求

很多人都有这个问题,我也找不到解决办法

我遵循了:

我的代码:


试试这个。(我的工作代码

首先在上面的
Gridview
views文件上注册
JavaScript
这里是确认框

$this->registerJs(“
$(document).on('ready pjax:success',function(){
$('.ajaxDelete')。在('click',函数(e){
e、 预防默认值();
var deleteUrl=$(this.attr('delete-url');
var pjaxContainer=$(this.attr('pjax-container');
bootbox.confirm('确实要更改此项目的状态吗?',
功能(结果){
如果(结果){
$.ajax({
url:deleteUrl,
键入:“post”,
错误:函数(xhr、状态、错误){
警报('您的请求有错误。'
+xhr.responseText);
}
}).完成(功能(数据){
$.pjax.reload({container:'#'+$.trim(pjaxContainer)});
});
}
}
);
});
});
");
和下面的代码用于
Gridview



不要设置
数据方法
数据确认
,因为
Pjax
不支持这一点

删除这两个后仍然不工作,是的,因为您的控制器的下面代码不允许Pjax get请求

return [
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'delete' => ['post'], // **remove this**
                ],
            ],
        ];
您需要使用Pjax Post方法 将此应用到Pjax中

'clientOptions' => ['method' => 'POST']
对于警报框,您需要做一些额外的工作

全程怎么办

第1页。包含网格视图的

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'layout' => "{pager}\n{summary}\n{items}\n{pager}",
        'columns' => [
            ['class' => 'yii\grid\CheckboxColumn'],
            '_id',
            'title',
            'notification:ntext',
            'date',
            ['class' => 'yii\grid\ActionColumn',
             'template' => '{view} {feedback}',
             'buttons' =>  ['feedback' => function ($url, $model, $key) {
                                return  Html::a('<i class="glyphicon glyphicon-comment"></i>'.$model->totalfeedback,'#');
                            },
                            'view' => function($url,$model,$key){

                                return $this->render('_viewLink',['model'=>$model]);

                        },
                            ],
             ]

            ],
    ]); ?>

让alert自己做一些额外的事情。我已经做了解决方案
echo Html::a('<span class="glyphicon glyphicon-eye-open"></span>',URL::to(['view','id'=>$model->_id]),['id' => 'view_link']);
Pjax::widget(['id'=>'view_member', 'linkSelector' => '#view_link','options'=>['tag'=>'span']]);
echo '&nbsp';
echo Html::a('<span class="glyphicon glyphicon-pencil"></span>',URL::to(['update','id'=>$model->_id]),['id' => 'edit_link']);
Pjax::widget(['id'=>'view_member', 'linkSelector' => '#edit_link','options'=>['tag'=>'span']]);
echo '&nbsp';
echo Html::a('<span class="glyphicon glyphicon-trash"></span>',
           URL::to(['delete','id'=>$model->_id]),
           ['id' => 'delete_link']);
Pjax::widget(['id'=>'view_member', 'linkSelector' => '#delete_link',
'options'=>['tag'=>'span'],'clientOptions' => ['method' => 'POST']]);