我需要创建类似于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/)
那么,什么是正确的方式呢?
如何在 wordpress 联系表格 7 中自定义表单标签,然后将结果添加到正在发送的电子邮件中?