选中Yii2 dropDownList标记选项

时间:2014-11-24 15:44:51

标签: drop-down-menu selected yii2

您好我正在尝试使用所选值创建一个下拉列表,但仍然没有进展,下拉是重新定位,但始终选择第一个选项。

$company_id = (int) $params['company_id'];
$options = [
    'options' => [
         $company_id => [
            'selected' => 'selected',
            'label' => 'test'
        ]
     ]
];
echo $form->field($model, 'company_id')->dropDownList($companies_list, $options);

该代码有什么问题?我编辑了我的代码并设置了'label'=>在我的选项中“测试”,这是有效的,但仍然没有选择

Ok解决方案,在我在renderSelectionOptions方法中找到的框架代码中找到:

$attrs = isset($options[$key]) ? $options[$key] : [];
$attrs['value'] = (string) $key;
$attrs['selected'] = $selection !== null &&
    (!is_array($selection) && !strcmp($key, $selection)
    || is_array($selection) && in_array($key, $selection));

所以我需要做的就是:

$model->company_id = $company_id;

在渲染部分之前

2 个答案:

答案 0 :(得分:9)

为未来的访问者留言:

如果您使用的是ActiveForm,那么您的模型字段的值将用作所选值,但如果您未使用ActiveForm并使用Html帮助生成下拉列表,则{{ 1}}函数也接受另一个参数dropDownList,您可以在其中传递您要选择的值,如docs

中所述

答案 1 :(得分:0)

请试试这个

for ($x = 1; $x <= 40; $x++) {
       if ($x=="1"){
            $items[$x] = $x." week";
        }else{
            $items[$x] = $x." weeks";
        }
    }
$weeks=28;
<?= Html::dropDownList('s_id', $selection = $weeks, $items, ['prompt' => '--Choose Week--','class'=>'form-control']) ?>