如何从yii2 gridview发送post参数

时间:2014-12-25 12:38:46

标签: php post gridview parameters yii2

是yii2的新手。我一直试图使用post方法从视图中向一个动作发送一些参数,不幸的是我的动作似乎没有看到/接收它们。非常感谢帮助。

我的专栏操作是这样的:

'buttons'=> [
    'password'=> function ($url, $model, $key){
    $url =$url = Url::toRoute(['users/reset-password', 'username' => $model->username]);
    return Html::a('<span class="glyphicon glyphicon-asterisk"></span>',$url,[
                   'title'=>'Clave',
                   'data-confirm' => Yii::t('yii', 'Are you sure you want to change this password?'),
                   'data-method' => 'post',
                   'data' => ['username'=>$model->username, 'test-name'=>'this is just for testing'],
                        ]);
                },
.....

data参数中的所有内容都应该通过post发送,但我只获取csrf令牌.. 提前谢谢你的帮助。

3 个答案:

答案 0 :(得分:7)

使用下面的代码

echo Html::a('Name', ['controller/action'], [
    'class'=>'classname',
    'data'=>[
        'method'=>'post',
        'confirm'=>'Are you sure? OK to continue Retract..',
        'params'=>[
            'param1'=>'value',
            .......,
        ],
    ]
]);

答案 1 :(得分:2)

“数据参数中的所有内容都应该通过帖子发送”为什么你相信?我在文档中找不到“数据”中的任何内容都将通过邮寄发送的内容 你可以:

  1. 使用get to send params OR
  2. 创建一个表单并将其包装在链接周围。它应该通过邮寄发送。

答案 2 :(得分:0)

尝试按会话发送:

'buttons'=> [<br/>
    'password'=> function ($url, $model, $key){<br/>
     Yii::$app->session->set('username',$model->username);<br/>
     Yii::$app->session->set('test-name','this is just for testing');<br/>
    $url =$url = Url::toRoute(['users/reset-password', 'username' => $model->username]);<br/>
    return Html::a('<span class="glyphicon glyphicon-asterisk"></span>',$url,[<br/>
                   'title'=>'Clave',<br/>
                   'data-confirm' => Yii::t('yii', 'Are you sure you want to change this password?'),<br/>
                   'data-method' => 'post',<br/>

                        ]);
                },

在控制器上调用它:

你可以参加会议:

Yii::$app->session->get('username');

删除会话

Yii::$app->session->remove('username');