小编lal*_*alo的帖子

Yii2如何在gridview中正确创建批量操作的复选框列?

我需要创建类似于wordpress帖子管理的"批量操作",因此您可以一次删除多个记录.

这是我的方法,并且工作正常,但我确信它不是最好的方法,因为这种方法容易受到CSRF攻击.

gridview中的复选框列:

GridView::widget([
'dataProvider' => $dataProvider,    
'columns' => [
['class' => 'yii\grid\CheckboxColumn'],
'id'=>'grid',
'country',
],
]); 
Run Code Online (Sandbox Code Playgroud)

触发函数的按钮

<a href="#" onclick="bulkAction('p');">
Run Code Online (Sandbox Code Playgroud)

功能:

<script>
    function bulkAction(a) {
        var keys = $('#grid').yiiGridView('getSelectedRows');
        window.location.href='<?php echo Url::to(['mycontroller/bulk']); ?>&action='+a+'&ids='+keys.join();
    }
</script>
Run Code Online (Sandbox Code Playgroud)

这个函数创建一个这样的URL:

index.php?r=mycontroller/bulk&action=1&ids=2,6,7,8
Run Code Online (Sandbox Code Playgroud)

问题是这种方法容易受到CSRF攻击(在此解释:http://blog.codinghorror.com/cross-site-request-forgeries-and-you/)

那么,什么是正确的方式呢?

csrf yii csrf-protection yii2

6
推荐指数
2
解决办法
1万
查看次数

如何制作联系表格7自定义字段?

如何在 wordpress 联系表格 7 中自定义表单标签,然后将结果添加到正在发送的电子邮件中?

wordpress contact-form-7

4
推荐指数
1
解决办法
2961
查看次数

标签 统计

contact-form-7 ×1

csrf ×1

csrf-protection ×1

wordpress ×1

yii ×1

yii2 ×1