不从下拉列表中读取值

时间:2014-01-26 14:28:25

标签: forms yii model html-select

'持续时间'是表格中的一列,是“必需的”

形式:

<div class="row">
    <?php echo $form->labelEx($model,'duration'); ?>

      <?php
           echo "<select>";
           echo "<option value=\"1\">1</option>";
           echo "<option value=\"1.5\">1.5</option>";
           echo "<option value=\"2\">2</option>";
           echo "<option value=\"2.5\">2.5</option>";
           echo "<option value=\"3\">3</option>";



      echo "</select>";
  ?>

    <?php echo $form->error($model,'duration'); ?>
</div>

当我选择一个选项时,会出现错误“持续时间不能为空”。如何让它读取值?

1 个答案:

答案 0 :(得分:2)

确保选择的名称为Model[duration]

你需要:

echo '<select name="ModelName[duration]">';

另外请不要在Yii视图中混用PHP vanilla代码,并使用Yii提供的方法。

我会做这样的事情:

echo CHtml::dropDownList('duration', $model, array('0' => 'Private', '1' => 'Public'));

甚至更好:

echo $form->dropDownList($model, 'placement', $model::$def_duration, array('prompt' => 'Select'));

其中def_duration将是模型中定义的key =&gt; value数组。