Drop down menu Yii2下拉列表标记选项已选中
您好,我正在尝试使用所选值创建一个下拉列表,但仍然没有进展,下拉列表正在渲染,但始终选择了第一个选项Drop down menu Yii2下拉列表标记选项已选中,drop-down-menu,selected,yii2,Drop Down Menu,Selected,Yii2,您好,我正在尝试使用所选值创建一个下拉列表,但仍然没有进展,下拉列表正在渲染,但始终选择了第一个选项 $company_id = (int) $params['company_id']; $options = [ 'options' => [ $company_id => [ 'selected' => 'selected', 'label' => 'test' ] ] ]
$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'=>'test',这是可行的,但仍然没有选择
在renderSelectionOptions方法中找到的框架代码中找到了Ok解决方案:
$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;
在呈现该部分之前,请注意以下事项: 如果您使用的是
ActiveForm
,则模型字段的值将用作所选值,但如果您没有使用ActiveForm
并使用Html
helper生成下拉列表,则dropDownList
函数也接受另一个参数选择
,您可以在其中传递要选择的值,如中所述。请尝试此操作
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']) ?>
$x=1;$x的
作为建议,如果您已经回答了您的问题,请将其作为答案写下来并接受它(这样其他人会更容易找到答案)@szapio我也面临着同样的问题,你能解释一下如何使用依赖下拉列表吗请查看下面的问题链接@szapio你能说我在哪里可以使用这两个代码$model->company_id=$company_id;和$attrs=isset($options[$key])?$options[$key]:[];$attrs['value']=(string)$key;$attrs['selected']=$selection!==null&&(!is_数组($selection)&&!strcmp($key,$selection)| is_数组($selection)&&in_数组($key,$selection));因为我也面临同样的问题