2014-09-06 164 views
0

我在yii中有一個管理面板,我可以編輯/更新子主題主題在DropDownList中設置默認值Yii PHP

並就副標題該編輯/更新頁面有一個外鍵值引用到主題表。

我有一個下拉菜單,我已經充滿了主題名稱代表主題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

你不需要這份工作阿賈克斯選項,你只需要在一開始加載所有主題的cHTML

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

最後兩個參數::的ListData是主題表的列名,主鍵和你想要展示什麼。我認爲這些是「id」和「name」。

Topic::model()->findAll() 

當然,這可以定製,以滿足您的需求。我甚至想放的方法

這將始終勢必下降值下降的更新

乾杯

+0

它返回null。該數組爲null。我使用的代碼如下: '<?php echo $ form-> dropDownList($ model,'topic_id',CHtml :: listData(Subtopics :: model() - > get_AllTopics(),'id' , '名稱')); ?>' – 2014-09-06 16:27:35

+0

噢,我的壞!它應該是'<?php echo $ form-> dropDownList($ model,'topic_id',CHtml :: listData(Topic :: model() - > findAll(),'id','name'));'。 .. 謝謝男人 – 2014-09-06 16:34:46

+0

酷男,我很高興我幫助 – 2014-09-06 16:36:10