无法根据下拉列表Yii更新文本字段


Cannot update textfield based on dropdown list Yii

我有3个依赖下拉列表,还有一个文本字段依赖于最后一个下拉列表。如果最后一个下拉列表中的某个值,我希望textfield值根据所选值动态更改(它来自同一个数据库表)。

这是第三个下拉列表的视图:

 <div class="row" id="id_subkeg">
       <?php echo $form->labelEx($model, 'id_subkeg'); ?>                    
       <?php
            echo $form->dropDownList($model, 'id_subkeg', array(), array(
                'style' => 'width: 100%',
                    'ajax' => array(
                        'type' => 'POST',
                        'url' => CController::createUrl('dynamicSatuan'),
                        'update' => '#' . CHtml::activeId($model, 'satuan'),
                        //'update'=>'#seksi',
                        'data' => array('id_subkeg' => 'js:this.value'),
                    )
                )
            );
       ?>
       <?php echo $form->error($model, 'id_subkeg'); ?>                       
</div>

这是文本字段视图:

<div class="row" id="satuan">
      <?php echo $form->labelEx($model, 'satuan'); ?>
      <p class="hint" style="font-size: 80%">Contoh: Dokumen.</p>
      <?php echo $form->textField($model, 'satuan', array('style' => 'width: 98%;', 'readonly' => FALSE)); ?>
      <?php echo $form->error($model, 'satuan'); ?>
</div>

这是控制器中的动作:

public function actionDynamicSatuan() {
        //$data = Subkegiatan::model()->findByPk($_POST['id_subkeg']);        
        $data = Subkegiatan::model()->findByPk('id_subkeg=:id_subkeg', array(':id_subkeg' => (int) $_POST['id_subkeg']));        
        echo $data->satuan;
    }

但它已经好几天没用了。我不知道我错过了哪一部分。我的猜测是,下拉列表是它上面的下拉列表的从属下拉列表。所以我一定错过了某个部分。

非常感谢您的帮助。

更新:经过几天的搜索,终于找到了:

 public function actionDynamicSatuan() {
        $param_country = (int) $_POST['id_subkeg'];
        $maxOrderNumber = Yii::app()->db->createCommand()
                ->select('satuan')
                ->from('subkegiatan')
                ->where('id_subkeg = ' . $param_country)
                ->queryScalar();
        echo '<b>SATUAN: '. $maxOrderNumber.'</b>';
        //echo CHtml::tag('input', array('type' => 'text', 'value' => $maxOrderNumber));
    }

使用成功回调:而不是更新

echo $form->dropDownList($model, 'id_subkeg', array(), array(
                'style' => 'width: 100%',
                    'ajax' => array(
                        'type' => 'POST',
                        'url' => CController::createUrl('dynamicSatuan'),
                        'data' => array('id_subkeg' => 'js:this.value'),
                        'success'=> 'function(data) {
                                        $("#your_id_here").empty();
                                        $("#your_id_here").append(data);
                                    }'
                    )
                )
            );