yii2:Pjax+;Gridview删除不发送ajax请求
我将Pjax与Gridview一起使用,我希望我的所有操作按钮都使用ajax。默认情况下,它们不会,所以我在谷歌上搜索并找到了删除数据pjax=0的方法。但仍然没有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
试试这个。(我的工作代码)
首先在上面的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 ' ';
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 ' ';
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']]);