1

我正在尝试从注册表单中获取所选下拉菜单的值。我需要将该值存储在数据库中。下拉代码是。

<?= $form->field($model, 'sex')->dropDownList(['1' => 'Male', '2' => 'Female'],['prompt'=>'Select Gender...'] )?>

我在这里尝试过使用属性'sex []'。但这没有帮助。

我已经在控制器中尝试过发布请求。

 $post=Yii::$app->request->post();
    $chosen = Yii::$app->request->post('sex', '');

    print_r($chosen);
    print_r($post->sex);

    echo "1:".$this->sex;
    echo "<br>";
    echo "2:".$this->sex;
    echo "<br>";
    echo "3:".$this->sex[0];
    echo "<br>";
    echo "4:".$this->sex[1];
    echo "<br>";

但这些都不是在提交的帖子中打印的值。它包含性的价值。这是 print_r($post) 结果 [sex]=>1 但如果在下拉列表中使用'sex[]',它会显示类似 [sex]=>array( [0]=>1)

4

1 回答 1

1

如果要选择多个,请确保将其创建为表单属性 sex[]中的数组

像这样

<?= $form->field($model, 'sex[]')->dropDownList(['1' => 'Male', '2' => 'Female'],['prompt'=>'Select Gender...'] )?>

然后将其加载到您的模型中

$model->load(Yii::$app->request->post()) 

这将是

$model->sex(这是一个数组)。

如果您只想选择一个选项

你必须有这样的东西

<?= $form->field($model, 'sex')->.... ?>

你的答案将是 $model->sex (即 1 或 2)

于 2018-07-31T16:50:37.947 回答