我不知道下拉列表的工作方式。我想从下拉列表中选择选定的值。
我的代码如下:
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
<?= $form->field($model1, 'test')->dropDownList($items)->label(false);?>
<button>Submit</button>
<?php ActiveForm::end() ?>
其中$items =[‘A’,‘B’,‘C’…‘Z’];
此显示的默认值是“ A”,我想更改此值。
我尝试使用$model1->test
,但这不是我选择的值。
谢谢!
答案 0 :(得分:0)
如果需要提示:
<?= $form->field($model, 'test')->dropDownList($items
, 'prompt' => ' -- Select Value --']) ?>
如果是其他情况 假设您选择从数组中选择“ B”:
$items =[‘A’,‘B’,‘C’…‘Z’];
“ B”键为1,因此您需要这样做:
<?= $form->field($model, 'test')->dropDownList($items)
,['options' => [1 => ['Selected'=>'selected']]
, 'prompt' => ' -- Select Value --']) ?>
答案 1 :(得分:0)
在ActiveForm
中,您的模型字段值被选择作为值。
在HTML中,有另一个属性,您可以设置默认值
您可以将HTML中的activeDropDownList()
用于给定的模型属性。
Yii2 ActiveForm中的语法:
<?= Html::field($yourModel, 'name_field_db')->dropDownList(
[items-array of data],
[options]
); ?>
语法HTML:
<?= Html::dropDownList($name, $selection = null, $items = [], $options = []) ?>
数据作为数组:
<?= $form->field($model, 'name')->dropDownList(['1' => 'on', '0' => 'off'],['prompt'=>'Select Option']); ?>
通过ArrayHelper::map
在下拉列表中显示数据库数据。
// get fields from database for make itemList
$yourModels=model::find()->all(); // Query(by Active record or Query Builder or ..)
$itemList=ArrayHelper::map($yourModels,'filed_id','filed-name');
echo $form->field($newModel, 'filed-name')->dropDownList($itemList,['prompt'=>'Please select']);
可以用于ActiveForm:$model->field = $model->isNewRecord? 'value' : $model->field;
答案 2 :(得分:0)
使用以下代码,应将ModelName更改为模型类名称,这将起作用。
<?= $form->field($model, 'test')
->dropDownList(ArrayHelper::map(app\models\ModelName::find()->all(),'id','test'))
?>