Php 如何从dropdownlist、radiolist和复选框列表中获取值

Php 如何从dropdownlist、radiolist和复选框列表中获取值,php,web,yii2,Php,Web,Yii2,Helli我有一个简单的表单,在我的表中插入数据,问题是我不知道如何: 1) 获取所选dropdownlist项的字符串值; 2) 获取所选单选元素的字符串值 3) 获取所选复选框的类似smthng的字符串数组; 这是表格 <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'first_name') ?> <?= $form->field($mo

Helli我有一个简单的表单,在我的表中插入数据,问题是我不知道如何: 1) 获取所选dropdownlist项的字符串值; 2) 获取所选单选元素的字符串值 3) 获取所选复选框的类似smthng的字符串数组; 这是表格

<?php $form = ActiveForm::begin(); ?>

        <?= $form->field($model, 'first_name') ?>
        <?= $form->field($model, 'last_name') ?>
        <?= $form->field($model, 'gender')->radioList([
            1 => 'Male',
            2 => 'Female'
        ]) ?>
        <?= $form->field($model, 'faculty')->dropdownList([
            1 => 'Faculty of Information Technology',
            2 => 'Faculty of Math Science',
            3 => 'Faculty of Ukrainian Literature',
            4 => 'Faculty of Health'
        ]) ?>
        <?= $form->field($model, 'languages')->checkboxList([
            1 => 'Java',
            2 => 'C++',
            3 => 'C#',
            4 => 'Python',
            5 => 'PHP',
            6 => 'Java Script'
        ]) ?>

        <div class="form-group">
            <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
        </div>
    <?php ActiveForm::end(); ?>
所以问题是,表单接受后插入db的值是选定值的索引,但我需要值来从下拉列表中获取字符串值,您应该使用字符串作为数组中的索引,例如:

<?= $form->field($model, 'faculty')->dropdownList([
    'Faculty of Information Technology' => 'Faculty of Information Technology',
    'Faculty of Math Science' => 'Faculty of Math Science',
    'Faculty of Ukrainian Literature' => 'Faculty of Ukrainian Literature',
    'Faculty of Health' => 'Faculty of Health'
]) ?>
鉴于此,请使用:

<?= $form->field($model, 'languagesIds')->checkboxList([
    1 => 'Java',
    2 => 'C++',
    3 => 'C#',
    4 => 'Python',
    5 => 'PHP',
    6 => 'Java Script'
]) ?>


从post数据加载模型后,
$model->languageSID
将填充选中的值。如果您希望使用字符串数组,请将索引(1,2,3,4..)替换为字符串,如第1点和第2点。

必须具有与视图中使用的结构等效的结构。。submit只返回索引,而不返回相关的描述您是否尝试过删除表单中的索引?我仍然对复选框有问题,我在ActiveRecord类中创建了数组,但当我尝试像$arr=$model->languagesIds这样获取索引时,我总是有一个空的数组来添加此规则
['languagesIds',safe'],
到ActivRecord中的规则,或者如果需要-到必需的数组规则。
public $languagesIds = [];
<?= $form->field($model, 'languagesIds')->checkboxList([
    1 => 'Java',
    2 => 'C++',
    3 => 'C#',
    4 => 'Python',
    5 => 'PHP',
    6 => 'Java Script'
]) ?>