2016-03-29 15 views
0

Yii2では、両方の詳細を表示するdivを選択すると2つの依存ドロップダウンがあるフォームがあります。私はそれが提供され、私はそれをドロップダウンの1つを割り当てている場合、選択された値を割り当てる必要があります質問はどのように選択された値で2番目のドロップダウンを割り当てるかです。Yii2従属ドロップダウンで選択した値を割り当てる

<div class="col-sm-6"> 
<?= $form->field($SasModel, 'all_batch_id')->dropDownList(ArrayHelper::map(app\modules\course\models\Batches::find()->where(['is_status' => 0])->all(),'batch_id','batch_name', 'batchCourse.course_name'), 
    [ 
     'options' => [$_GET['batchid'] => ['Selected'=>'selected']], 
     'prompt'=>'Select Batch', 
     'onchange'=>' 
      $.get("'.Url::toRoute('subjectsallocatesem/studsection').'", { id: $(this).val() }) 
       .done(function(data) { 
        $("#'.Html::getInputId($SasModel, 'semester_id').'").html(data); 
       } 
      ); 
     '  
    ]); 

?> 
</div> 

<div class="col-md-6"> 
<?= $form->field($SasModel, 'semester_id')->dropDownList(
    [ 'prompt'=>'---Select Semester---' ], 
    [ 'onchange'=>'this.form.submit()' ] 
); ?> 
</div> 

答えて

0

学期モデルにメソッドを作成します。

public static function getBatchSemster($batch_id = NULL) 
{ 

    if(!empty($batch_id)) { 
     $semester = self::find()->andWhere(['batch_id_in_semester_model' => $batch_id])->all(); 
     $results = yii\helpers\ArrayHelper::map($semester, 'sem_id', 'sem_name'); 
     return $results; 
    } 
    else { 
    return $results[]; 
    } 
} 

変更フォーム:

<div class="col-md-6"> 
    <?= $form->field($SasModel, 'semester_id')->dropDownList(SemesterModel::getBatchSemster($SasModel->all_batch_id), 
    [ 'prompt'=>'---Select Semester---' ], 
    [ 'onchange'=>'this.form.submit()' ], 
    ); ?> 
</div> 
+0

私は2番目のドロップダウンで学期のリストを取り込むには問題がないのです。選択したフィールドに問題があります。最初のドロップダウンに選択した値を追加するには、 '' options '=> [$ _GET [' batchid '] => [' Selected '=>' selected ']]」を使用しました。 2番目のドロップダウン選択値を除いてすべてが完全に機能しています。 @ TalhaZahid @ –

+0

それはすべての学期についてではない、方法は一致したバッチIDと1つの学期の名前を取得します。 –

+0

yii2/helpers/BaseHtml.phpのforeach()に無効な引数が指定されました。エラーが返されました foreach($ items = $ $){ if(is_array($ value)){ $ groupAttrs = isset($ groups [$ key])? $ groups [$ key]:[]; $ groupAttrs ['label'] = $ key; = '$'、 'groups' => $ groups、 'encodeSpaces' => $ encodeSpaces、 'encode' => $ encode]; $ content = static :: renderSelectOptions($ selection、$ value、$ attrs); @ TalhaZahid。 –

関連する問題