web-dev-qa-db-ja.com

Yii2ドロップダウン選択値

Yii2ドロップダウンで選択した値を表示したい、

$ _GET値:

  $id = $_GET["cid"];

ドロップダウンコード

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

しかし、この方法は機能していません!

13

これを試して。

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

基本的に、オプションに影響を与えます(<option>要素)value属性の実際の値をdropDownListオプション配列の配列キーとして使用します。

そのため、この場合、状態の配列があり、値属性には状態の省略形があります。たとえば、value="FL"。省略形を格納するアドレステーブルから選択した状態を取得しているので、options配列の配列キーとしてそれを使用するだけです。

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

ドキュメントはそれを綴ります: http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#dropDownList()-detail

6
Steven McElveen

これがお役に立てば幸いです

$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('');
3
Kalai S
<?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);
?>

このコードは、入力として受信した選択値を自動選択します。 $ selectValueは、GETメソッドから受け取った数値です。

最終出力:<option value="14" selected="selected">NONE</option>

2
Vikram
$model->userid = $_GET['cid'];
$form->field($model, 'userid')
->dropDownList( 
      $items,                   //Flat array('id'=>'val')
['Prompt'=>'']                  //options
)->label('');
2
Sagar Jagodra

OK、ActiveFormを使用している場合、モデルフィールドの値が選択値として使用されます。 Htmlヘルパーでは、dropDownList関数は別のパラメーター選択を受け入れます doc 。例:

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

以下のこのコードを使用します。

$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
Hunny

これが私のS.O.L.I.Dアプローチです。

コントローラ

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

ビュー(ビューは現状のまま)

$form->field($model, 'userid')
->dropDownList(...)
->label('');
0
Jake Pucan