2016-08-07 48 views
0

Ich brauche Multiselection in der Dropdown-Liste. Das ist meine Dropdown-ListeDropdown-Liste Multiselection in yii2

<?= $form->field($model, 'receiver_id')->dropDownList(
    ArrayHelper::map(User::find()->all(),'id','username'), 
    ['prompt' => 'Select receiver...'] 
) ?> 

Aber es ist nur für einen Empfänger. Ich möchte einige Empfänger auswählen und sie im Textfeld dieser Liste durch Kommas getrennt anzeigen. Könnten Sie mit diesem Problem helfen? Vielen Dank im Voraus für jede Hilfe, die Sie zur Verfügung stellen können.

+0

Wenn Sie ' 'multiple' add => true' in den Optionen für DropDownList Sie erhalten Multiselection, aber ich bin mir nicht sicher, ob das, was Sie suchen. Denken Sie daran, dass ein Feld wie dieses zu einem Array und nicht zu einem String wird. – Bizley

+0

Hallo, ich habe es schon mal versucht und es ist nicht mein Bedürfnis. Es wird in Listbox umgewandelt, indem diese Option hinzugefügt wird. –

+0

Ja, Sie haben Recht, Array, aber ich möchte die gleiche Nachricht an verschiedene Empfänger senden, indem Sie sie in Dropdown-Liste auswählen. Wie kann ich diese Logik implementieren? –

Antwort

0

verwenden nur einen listbox

<?= $form->field($model, 'receiver_id')->listbox(
    ArrayHelper::map(User::find()->all(),'id','username') 
) ?> 

oder ein select2 Widget verwenden, indem kartik

+0

Ja, ich habe es auch versucht, aber wenn ich Empfänger durch Klicken auswähle, muss ich Strg drücken, um einige von ihnen zu wählen. –

+0

mehrere select2 Widget ist, dass ich will, danke. Gibt es eine Methode, um es mit aktiver Form zu verwenden? –

0

Verwendung wie diese

echo $form->field($model, 'state_1')->widget(Select2::classname(), [ 
     'data' => $data, 
     'options' => ['placeholder' => 'Select a color ...', 'multiple' => true], 
     'pluginOptions' => [ 
      'tags' => true, 
      'maximumInputLength' => 10 
     ], 
    ]); 
+0

Feld ($ Modell, 'Empfänger_ID') -> Widget (Select2 :: Klassenname(), [ 'Daten' => ArrayHelper :: Karte (Benutzer :: find() -> alle(), 'ID', 'Benutzername'), 'Optionen' => ['Platzhalter' => 'Empfänger wählen ...', 'Mehrfach' => Wahr], 'pluginOptions' => [ 'Tags' => true, ' maximumInputLength '=> 10 ], ]); ?> Formular in Sicht funktioniert gut, aber die Logik nicht. Ich habe Array-String-Konvertierungsfehler, wie Bizley vorhergesagt hat. Was kann ich damit machen? –

+0

Yeap es ist möglich – rakhmatov