Yii2如何识别同一个表单的两次按钮点击

How to identify the two button clicks of the same form in Yii2

我有两个名为搜索的按钮,以相同的形式创建名为 search.How 以识别控制器功能中的这两个按钮点击。

  <?= Html::a(Yii::t('app', 'Search'), ['search'], ['class' => 'btn btn-success']) ?>
  <?= Html::a(Yii::t('app', 'Create'), ['search'], ['class' => 'btn btn-success']) ?>

你问的有点奇怪。但是这里什么也没有。

首先,您始终可以只向 link 添加一个参数,例如:

  <?= Html::a(Yii::t('app', 'Search'), ['search', 'button' => 'search'], ['class' => 'btn btn-success']) ?>
  <?= Html::a(Yii::t('app', 'Create'), ['search', 'button' => 'create'], ['class' => 'btn btn-success']) ?>

这将创建 2 个不同的 link,您可以使用 GET 参数找出点击的内容。

我认为您真正想做的是提交表格。在 Bootstrap 中,按钮和 link 看起来一样。你实际上有 2 个 link,你没有 2 个按钮。简单的解决方案就是将那些 link 变成实际的按钮并给它们一个名称和一个值。

<?= Html::button(Yii::t('app', 'Search'),
                    [
                        'name'=>'button',
                        'value'=>"search", 
                        'class' => 'btn btn-success'
                    ]
                )?>
<?= Html::button(Yii::t('app', 'Create'),
                    [
                        'name'=>'button',
                        'value'=>"create",
                        'class' => 'btn btn-success'
                    ]
                )?>

如果您的表单使用 GET 传输数据,请检查 GET 参数以确定单击的内容,否则使用 POST 来确定相同的内容。