2017-02-10 2 views
1

Ich arbeite an Yii2. Ich erstelle mehrere Auswahl Drop-Down mit benutzerdefinierten Array wie folgt.Wie können ausgewählte Werte in mehreren Dropdown-Menüs in einer Yii2-App angezeigt werden?

In Controller-Datei:

$all_groups = Groups::find()->where(['=','group_created_by',$id])->orwhere(new Expression('FIND_IN_SET(:id_to_find, group_managers)'))->addParams([':id_to_find' => $id])->all(); // fetch all values 

$selected_groups = Groups::find()->where(['=','group_users',$updateId])->orwhere(new Expression('FIND_IN_SET(:id_to_find, group_users)'))->addParams([':id_to_find' => $updateId])->all(); // getting selected values 

$all_groups_array = []; 

foreach ($all_groups as $group) { 
    $all_groups_array[$group->id] = ucfirst($group->group_name); 
} 

On Render-Daten in der Ansicht:

return $this->render('mngr_userupdate', [ 
         'model' => $model, 
         'all_groups_array'=>$all_groups_array, 
         'case'=>$case, 
         'email_error' => 'false', 
         'applied_email' => '' , 
         ]); 

so ist es zu schaffen Array wie folgt:

Array 
(
    [11] => Mngr1 group 
    [14] => Mngr 11 Group 
) 

In ilm-Datei:

<?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple']) ?> 

Es funktioniert gut auf Formular zum Einfügen von Daten zu erstellen. aber wie man ein Array erstellt, mit dem ich ausgewählte Werte im Update-Formular anzeigen kann.

Edit:

ich gerade herausgefunden, dass, wenn ich es verwenden, wie

<?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple', 'options'=>['14'=>["Selected"=>true],'11' => ["Selected"=>true]]]); ?> 

dann wird es Anzeigewerte zu starten, wie ausgewählt. das heißt muss ich Array erstellen wie

[ 
'14'=>["Selected"=>true], 
'11' => ["Selected"=>true] 
] 

Dazu I Schleife bin mit wie wie folgt:

foreach ($selected_groups as $key => $value) { 
      $sel_groups_array[$value] = '' // what should be there or else 
      } 

Wie kann ich dieses Array mit Schleife erstellen?

Antwort

1

Ich habe Lösung meiner Frage erstellt, Im Fall, wenn jemand die solche Art von Problem hat, dann kann er die Schleife verwenden, wie wie folgt:

foreach ($selected_groups as $group) { 

    $sel_groups_array[$group->id] = array("selected"=>true); 
} 

und in den Ansichten Datei können Sie das Array verwenden für Anzeige gewählt mehrere Werte wie folgt:

<?= $form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple','options' => $sel_groups_array]); ?> 

da die Struktur mehrere ausgewählte Werte auf Update Formular anzuzeigen, sollte es so sein, wie folgt:

$form->field($model, 'group_user[]')->dropDownList($all_groups_array,['multiple' => 'multiple', 'options'=>['14'=>["Selected"=>true],'11' => ["Selected"=>true]]]); 
// here 14 and 11 I am using as example 
Verwandte Themen