在DropDownList中设置默认值Yii PHP

时间:2014-09-06 14:39:00

标签: php yii html.dropdownlistfor

我在yii中有一个管理面板,我可以编辑/更新子主题主题

子主题 的编辑/更新页面上,引用主题外键值表

我有一个下拉列表,我代表主题ID 填写了主题的名称,但问题是下拉列表应该显示正确的选中内容下拉列表中主题的值。相反,它显示第一个值

My Code

<?php
/* SubtopicsController */
/* @var $model Subtopics */
/* @var $form CActiveForm */
?>

<div class="form">
    <?php
        $form = $this->beginWidget('CActiveForm', array(
            'id' => 'subtopics-form',
            'enableAjaxValidation' => false,
            'htmlOptions' => array('enctype' => 'multipart/form-data'),
        ));
    ?>
....
//Some Irrelevant Code
....

<div class="row">
    <?php echo $form->labelEx($model, 'name'); ?>
    <?php echo $form->textArea($model, 'name', array('rows' => 1, 'cols' => 50)); ?>
    <?php echo $form->error($model, 'name'); ?>
</div>

<div class="row">
    // This is the subjected dropdown
    <?php echo $form->labelEx($model, 'topic_id'); ?>
    <?php
       echo $form->dropDownList($model, 'topic_id', Subtopics::model()->get_AllTopics(), array(
           'ajax' => array(
               'data' => array('topic_id' => 'js:this.value'),
       )));
    ?>
    <?php echo $form->error($model, 'topic_id'); ?>
</div>


<div class="row buttons">
    <?php ?>
    <?php
    echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save');
    ?>
</div>

<?php $this->endWidget(); ?>

What it is showing

<code>What it is showing</code>

And this is the option I want to be selected

And this is the option I want to be selected

1 个答案:

答案 0 :(得分:1)

你不需要这个工作的ajax选项,你只需要在开始时加载所有主题

<?php echo $form->dropDownList($model,'topic_id', CHtml::listData(Topic::model()->findAll(), 'id', 'name')); ?>

CHTML :: listData的最后两个参数是主题表,主键和要显示的内容中的列名。我认为那些是&#34; id&#34;和&#34;名称&#34;。

Topic::model()->findAll()

当然,这可以根据您的需求进行定制。我甚至想提出一个方法

这将始终在更新

下拉列表中绑定值

干杯