2014-12-20 24 views
11
Ben Yii2 açılır listesinde seçilen değeri göstermek istiyorum

,Yii2 açılan seçilen değeri

$ _GET Değer:

$id = $_GET["cid"]; 

Bırak aşağı kod

$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('');   

ancak bu yöntem çalışmıyor!

+0

Arah .. Ben sadece PHP etiketlerinin içinde, eko yazmayı unutma (görünüm, var olan). alan (....)?> –

+0

Ayrıca bu kod satırını da kaçırmıştım: $ model-> userid = $ id; –

cevap

18

Bunu deneyin.

$model->userid=$id; 
$form->field($model, 'userid') 
->dropDownList(...) 
->label(''); 
+2

En azından sebep göstermek için neden oy verin? –

+0

Bu kod satırını kaçırıyordum: $ model-> userid = $ id; –

+0

Yardım etmesine sevindim. –

0

Eğer ActiveForm kullanıyorsanız, model alanınızın değeri seçilen değer olarak kullanılacaktır. Html helper ile dropDownList işlevi, doc numaralı başka bir parametre seçimini kabul eder. Örnek: ben bu Temelde size

$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

Bu hatayı aldım: Nesne olmayan bir öğe formName() öğesine çağrı –

+0

Bana kodunuzu göster, lütfen! – Fortran

2

, DropDownList seçeneklerinde dizi anahtar olarak değeri özelliğin gerçek değerini kullanarak seçenekleri (sizin <option> elemanları) etkiler dizi.

Bu durumda, bir dizi durumum var ve değer öznitelikleri, örneğin value="FL" gibi, eyalet kısaltmasına sahiptir.

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

dokümantasyon durumu özetleyen: Ben bu yüzden tüm yapmanız gereken seçeneklerinde benim dizi anahtar olarak dizi kullanan ise, kısaltma saklayan Adres tablodan, benim seçilmiş durumu alıyorum:

+0

Çoklu seçim için de kullanışlıdır. – Footniko

2

yardımcı olacağını umuyoruz

$id = $_GET["cid"]; 
\yii\helpers\Html::dropDownList('userid', $id, [ArrayHelper::map(User::findAll(['active' => '1']), 'id', 'name'), [......]) 
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); 
?> 

http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#dropDownList()-detail Bu kod Otomatik seç seçilen değeri girdi olarak alınan edecektir. Burada $ selectValue, GET yönteminden alınan sayısal değer olacaktır.

Final çıkışı: Bu kod aşağıda <option value="14" selected="selected">NONE</option>

0

Kullanım:

$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

Bu benim S.O.L.I.D yaklaşımdır.

Kontrolör

$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')) 

Görünüm

$form->field($model, 'userid') 
->dropDownList(...) 
->label(''); 
İlgili konular