我在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
And this is the option I want to be selected
答案 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()
当然,这可以根据您的需求进行定制。我甚至想提出一个方法
这将始终在更新
下拉列表中绑定值干杯