2017-02-28 4 views
1

フォームを自動的に入力する方法ですが、ユーザーが要求した場合のみフォームを自動的に入力します。 つまり、フォームが生成されるときにフィールドに値が設定されません。Yii2:トリガーされたときにのみフォームを自動的に入力します

ポル例:

<?= $form->field($model, 'city')->textInput() ?> 

フォームにアクセスするとき、フィールドは空です。そして私が望むのは、ユーザーがクリックすると、自動的に "User"テーブルにある "city"の値がフィールドに入力されるボタンがあることです。

フォーム:

市:__________ |私の街を得る|

ユーザーは "私の町を取得" ボタンをクリックした後:

市:_London___ |私の街を得る|

+1

を不要アヤックスは、あなたが何かを示すことができ@Ripperあなたはオートコンプリート – Ripper

+0

を行うときのように、AJAX呼び出しを経由して、それを埋めますか?私は今これを見ているhttps://youtu.be/hZ-6huMYxBc?list=PLRd0zhQj3CBmusDbBzFgg3H20VxLx2mkF – Giest

+0

モデル名は何ですか?または入力ID? – Ripper

答えて

1

で最後

<div class="row"> 
    <div class="col-sm-12"> 
     <?= Html::activeLabel($model, 'city') ?> 
    </div> 
    <div class="col-xs-9"> 
     <?= $form->field($model, 'city')->textInput()->label(false) ?> 
    </div> 
    <div class="col-xs-3"> 
     <?= \yii\helpers\Html::button('get my city', ['id' => 'get-user-city-btn']) ?> 
    </div> 
</div> 

<?php $this->registerJs(" 
    $('#get-user-city-btn').on('click', function(){ 
     $('#id-of-city-input-goes-here').val('" 
      . Yii::$app->user->identity->city 
     . "'); 
    }); 
", $this::POS_END, 'get-user-city-script'); ?> 
関連する問題