2017-02-06 2 views
0

searchという名前の2つのボタンがあります。この2つのボタンは、search.Howと同じ形式で作成され、コントローラ機能の2つのボタンのクリックを識別します。Yii2の同じフォームの2つのボタンクリックを特定する方法

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

これはあなたに役立ちますhttp://stackoverflow.com/questions/29227225/yii2-button-with-parameter – SarangaR

答えて

1

あなたが尋ねていることは少し奇妙です。しかしここには何も行きません。

まず、あなたは常にだけで、たとえば、リンクにパラメータを追加することができます。

<?= 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つの異なるリンクを作成し、あなたがクリックされたかを把握するためにGETパラメータを使用することができます。

あなたが実際にやっていると思うのは、フォームを送信することです。ブートストラップでは、ボタンとリンクは同じように見えます。実際には2つのリンクがあり、2つのボタンはありません。単純な解決策は、それらのリンクを実際のボタンに変えて、名前と価値を与えることです。

<?= 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' 
        ] 
       )?> 

フォームが同じことを把握するためにPOSTを使用してそれ以外の場合は、クリックされたかを把握するためにGETパラメータをチェックし、データを送信するためにGETを使用している場合。

+0

これは問題ありません。コントローラでどのように使用していますか? (Yii :: $ app-> request-> post( 'button')== 'search')if if($ model-> load(Yii :: $ app-> request-> post()) – Dijo

+0

if (Yii :: $ app-> request-> post( 'button')== '作成')、それは 'button'よりも優れているかもしれません。 –

+0

それを得ました.Mihaiありがとうございました。 – Dijo

関連する問題