2017-07-03 10 views
0

私は市民の国と都市に関するデータを持っています。これらのデータは、jsを使用してドロップダウンリストに表示されます。それらを更新しようとすると、ドロップダウンリストに保存前のデータが表示されません。それを解決する方法。 私のコードは次のとおりです。ドロップダウンリストに値を設定する方法yii2

<?= $form->field($organization, 'country_id')->dropDownList([],[ 
           'prompt' => '---', 
           'onchange' => ' 
            $.get("../citizeninfo/city?id='.'"+$(this).val(), function(data){ 
            $("select#training-city_id").html(data); 
            });' 
            ]) ?> 

<?= $form->field($organization, 'city_id')->dropDownList([], ['prompt' => '---']) ?> 

答えて

0

あなたがこの方法を使用することができます。

市モデル

public static function getCityByCountry($countryId) 
{ 
    $cities = self::find() 
     ->where(['country_id' => $countryId]) 
     ->select(['name']) 
     ->indexBy('id') 
     ->orderBy(['name' => SORT_ASC]) 
     ->column(); 

    return $cities; 
} 

Form.php

<?= $form->field($organization, 'city_id')->dropDownList(City::getCityByCountry($organization->country_id), ['prompt' => '---']) ?> 

country_idも同じです。
jqueryで同じ機能を呼び出して、選択した国の都市を取得することもできます。

0

設定Vaue:

<?= $form->field($model, 'sex')->dropDownList(
      ['0' => 'Male', 
      '1' => 'Female'] 
    ) ?> 
関連する問題