如何在yii中页面加载时从数据库中检索值

时间:2014-04-09 11:09:43

标签: javascript php jquery ajax yii

我的更新表单中有两个下拉列表。一个用于地缘政治区,另一个用于州(州下降取决于地缘政治区的下降)。我知道默认情况下,如果更新yii中的记录,则在状态下拉列表中选择状态的存储值。 现在正在使用依赖的下拉列表,在页面加载时,我进行ajax调用以根据地缘政治区域的值更新状态下拉列表中的值。这有效。 现在我想将状态下拉列表的选定值设置为与数据库中的相同。在我的JavaScript中,我尝试将状态下拉列表的值设置为已知值,这是有效的。所以我的问题是如何从数据库中检索状态的值,以便我可以在页面加载时解析它到我的ajax调用?

这是我的代码:

<div class="row">
    <?php echo $form->labelEx($model,'gpz_id'); ?>
    <?php echo $form->dropDownList($model,'gpz_id', CHtml::listData(GPZ::model()->findAll(), 'gpz_id', 'gpz'),
                    array(
                        'prompt'=>'Select Geopolitical Zone',
                        'ajax'=>array(
                            'type'=>'POST',
                            'url'=>CController::createURL('state/sortbygpz'),
                            'update'=>'#Project_state_id',
                            'data'=>  array('gpz_id'=>'js:this.value'),  
                            'success'=> 'js:function(msg) {
                                $("#Project_state_id").html(msg);
                            }'
                                        )
                    )); ?>
    <?php echo $form->error($model,'gpz_id'); ?>
</div>
<div class="row">
    <?php echo $form->labelEx($model,'state_id'); ?>
    <?php echo $form->dropDownList($model,'state_id', array(), array('prompt'=>'Select Geopolitical Zone First')); ?>
    <?php echo $form->error($model,'state_id'); ?>
</div>

这是我的javascript:

 $(document).ready(function() {
   var gpz = $('#Project_gpz_id').val();

        $.ajax({
            type: 'POST',
           url: '<?php echo CController::createURL('/state/sortbygpz'); ?>',
           data: {gpz_id: gpz},
           update: $('#Project_state_id'),
            success: function(msg) {
                $('#Project_state_id').html(msg);
$('#Project_state_id').val("31"); //i set the selected value to a known state id
            }
            error: function() {
                alert(error);
            } 

    }); 

});

0 个答案:

没有答案