检查控制器中的特定提交按钮值(Yii2)

kri*_*555 3 yii2 yii2-advanced-app

如何检查控制器中的提交按钮值(Yii2).我正在使用多个提交按钮.

我试过简单的PHP代码.但它不起作用.

if(isset($_POST['next']) && $_POST['next']=='gotocartfive') 
Run Code Online (Sandbox Code Playgroud)

视图中的代码是:

<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'status')->checkbox(); ?>

</div>

<div class="form-group">
    <?php echo Html::submitButton('NEXT',array('value'=>'gotocartfive','name' => 'next','id'=>'next_summary','class'=>'btn btn-primary pull-right')); ?>
    <?php echo Html::submitButton('PREVIOUS',array('value'=>'previous_four','name' => 'cartfour','class'=>'btn btn-primary pull-left')); ?>
</div>  
<?php ActiveForm::end(); ?>
Run Code Online (Sandbox Code Playgroud)

Văn*_*yết 5

<?= Html::submitButton('Submit 1', ['name' => 'submit', 'value' => 'submit_1']) ?>
<?= Html::submitButton('Submit 2', ['name' => 'submit', 'value' => 'submit_2']) ?>
Run Code Online (Sandbox Code Playgroud)

PHP

If (\Yii::$app->request->isPost) {
   switch (\Yii::$app->request->post('submit')) {
      case 'submit_1':

      case 'submit_2':

   }
}
Run Code Online (Sandbox Code Playgroud)

当您按Enter键提交表单时(不单击任何提交按钮),submit_1将是默认值.

  • 谢谢.它似乎有效.但是,我必须单击该按钮两次.第一次单击不执行任何操作.还有什么可做的吗? (3认同)
  • 不要_name_按钮_submit_,否则您必须在按钮上单击两次才能提交表单。 (2认同)