如何在YII框架的下拉列表中显示所选值?

时间:2014-11-13 12:03:09

标签: php yii html.dropdownlistfor selected

我想在Yii框架的下拉列表中显示所选值。 我使用Yii CRUD操作生成代码。添加和更新它时使用相同的视图,即_form.php。

    <?php echo $form->labelEx($model,'prj_id'); ?>
    <?php
    $list = CHtml::listData(ProjectList::model()->findAll(array('order' => 'prj_name')), 'prj_id',       'prj_name');
    echo $form->dropDownList($PrjList, 'prj_id', $list);
    ?>
    <?php echo $form->error($model,'prj_id'); ?>

假设我的下拉列表中有国家/地区名称。添加时我选择了India并将其保存在数据库中。在更新时,它应将印度显示为我选择的国家 提前谢谢。

3 个答案:

答案 0 :(得分:1)

您为下拉列表使用了不同的模型..?

如果使用$model作为下拉列表的模型,则会将所选值的ID保存到数据库中。那么当你要更新记录时,$model->prj_id将被设置为保存的值,这就是它将显示的值。

不知道$PrjList是什么,但我认为它应该类似于以下代码,因为您还会显示此模型和字段的标签和错误。

  echo $form->dropDownList($model, 'prj_id', $list);

如果出于某种原因需要$PrjList作为模型,请确保将prj_id设置为保存的值。

答案 1 :(得分:0)

$form->dropDownListCHtml::activeDropDownList相同。您必须传递模型对象,然后该对象具有下拉属性设置,它将自动选择它。

答案 2 :(得分:0)

使用以下格式

<?php  echo $form->dropDownList($PrjList,'prj_id', CHtml::listData(ProjectList::model()->findAll(array('order' => 'prj_name')),'prj_id','prj_name'),array('prompt'=>'Select Parent Menu','class'=>"span6 m-wrap"));?>