2014-12-20 21 views
11

I ausgewählten Wert in Yii2 Dropdown zeigen will,Yii2 Dropdown ausgewählter Wert

$ _GET Wert:

$id = $_GET["cid"]; 

Drop-Down-Code

$form->field($model, 'userid') 
    ->dropDownList(
      [User::getUser()], 
      //[ArrayHelper::map(User::findAll(['active' => '1']), 'id', 'name')], 
      ['prompt'=>'Select a user','id'=>'user_dropdown'],  
      ['options' => 
        [       
         $id => ['selected' => true] 
        ] 
      ] 

     )->label('');   

aber diese Methode funktioniert nicht!

+0

Arah .. ich vergessen, nur echo zu schreiben, innerhalb der PHP-Tags. field (....)?> –

+0

Auch ich habe diese Codezeile gefehlt: $ model-> userid = $ id; –

Antwort

18

Versuchen Sie dies.

+2

Gib wenigstens einen Grund, warum unten abstimmen? .Ist es nicht funktioniert? –

+0

Ich habe diese Codezeile gefehlt: $ model-> userid = $ id; –

+0

Froh, dass es geholfen hat. –

0

Ok, wenn Sie ActiveForm verwenden, wird der Wert Ihres Modellfelds als ausgewählter Wert verwendet. Mit Html Helper dropDownList Funktion akzeptiert eine andere Parameterauswahl doc. Beispiel:

$id = $_GET["cid"]; 
\yii\helpers\Html::dropDownList('userid', $id, [ArrayHelper::map(User::findAll(['active' => '1']), 'id', 'name'), [......]) 
+0

Ich habe diesen Fehler: Rufen Sie eine Mitgliedsfunktion formName() auf einem Nicht-Objekt –

+0

Zeigen Sie mir bitte Ihren Code! – Fortran

2

ich das hoffen, dass Sie im Grunde

$form->field($model, 'userid') 
    ->dropDownList(
      [User::getUser()], 
      //[ArrayHelper::map(User::find()->where('id' => $id)->all(), 'id', 'name')], 
      ['prompt'=>'Select a user','id'=>'user_dropdown'],  
      ['options' => 
        [       
         $id => ['selected' => true] 
        ] 
      ] 

     )->label(''); 
+0

Nützlich für mehrere wählen Sie auch. – Footniko

2

helfen, beeinflussen Sie die Optionen (Ihre <option> Elemente) unter Verwendung der Wert Istwert als Array Schlüssel des Attributs in den Dropdownlist-Optionen Array.

Also in diesem Fall habe ich eine Reihe von Zuständen und die Wert-Attribute haben die Abkürzung des Zustands, zum Beispiel value="FL". Ich meinen ausgewählten Zustand aus der Adresstabelle erhalten, die die Abkürzung speichert, so alles, was ich tun muß, ist, die als mein Array-Schlüssel in den Optionen Array:

echo $form->field($model, 'state')->dropDownList($listData, ['prompt'=>'Select...', 'options'=>[$address->state=>["Selected"=>true]]]); 

Die Dokumentation konkretisiert: http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#dropDownList()-detail

2
$model->userid = $_GET['cid']; 
$form->field($model, 'userid') 
->dropDownList( 
     $items,     //Flat array('id'=>'val') 
['prompt'=>'']     //options 
)->label(''); 
0
<?php 
$selectValue = $_GET['tid'] 
echo $form->field($model, 'tag_id') 
      ->dropdownList(
       ArrayHelper::map(Tag::find()->where(['visibility'=>'1'])->orderBy('value ASC')->all(), 'tag_id', 'value'), 
       ['options' => [$selectValue => ['Selected'=>'selected']]], 
       ['prompt' => '-- Select Tag --']) 
      ->label(false); 
?> 

Dieser Code wird die automatische Auswahl der ausgewählte Wert erhalten als Eingabe. Dabei ist $ selectValue ein numerischer Wert, der von der GET-Methode erhalten wird.

fertige Ausgabe: <option value="14" selected="selected">NONE</option>

0

Verwenden Sie diesen Code unter:

$category = \backend\models\ProductCategory::find()->WHERE(['deleted'=>'N'])->all(); 

$listData = ArrayHelper::map($category,'product_category_id','category_name'); 

echo $form->field($model, 'product_category_id')->dropDownList($listData,['prompt'=>'Select']); 
0

Das ist mein S.O.L.I.D Ansatz.

-Controller

$model = new User; 
$model->userid = $id; #this line does the magick. Make sure the $id has a value, so do the if else here. 
return $this->return('view', compact('model')) 

Ansicht (Ansicht ist, wie sie ist)

$form->field($model, 'userid') 
->dropDownList(...) 
->label(''); 
Verwandte Themen