YII:如何在页面加载时更新ajax数据?

时间:2012-04-21 11:09:08

标签: php ajax drop-down-menu yii

我有一个更新ajax字段的下拉列表。一切正常,但ajax字段没有填充页面加载的数据。如何在页面加载时强制执行ajax字段更新?

这是视图中的下拉列表:

echo CHtml::dropDownList('category_selection_code', '', $cat_list_data, 
        array('style'=>'width:400px',
              'ajax' => 
                        array(
                            'type'=>'POST', 
                            'url'=>CController::createUrl('articles/GetContentFields'), 
                            'update'=>'#ExtraContentFields', 

                        )
            )
);

* UPDATE

我找到了适合我的解决方案:

$(document).ready(function(){
    $.ajax({
        type: 'POST',
        data: {category_selection_code: $('#category_selection_code').val()},
        url: '<?php echo CController::createUrl('articles/GetContentFields'); ?>',
        success: function(data){
                    $('#ExtraContentFields').html(data)
                }
    })
})

ajax处理控制器 articles / GetContentFields 正在等待$ _POST数组中的 category_selection_code 参数。我们应该在ajax部分的数据部分设置它:

数据:{ category_selection_code :$('#category_selection_code')。val()},


Thnx都是为了帮助。

3 个答案:

答案 0 :(得分:1)

我不认为你上面所做的是正确的。首先,CHtml :: dropdownList()函数的第四个参数是一个HTML选项数组。 See the function signature for CHtml::dropdownList()

将您的AJAX电话放在

$(document).ready(function() {
 //Your call goes in here. 
});

答案 1 :(得分:1)

火灾变化事件对我有用。 另外,我发现了有用的CHtml::activeId(..)方法。

<?php
$cs = Yii::app()->clientScript->registerScript(
  'update-brand-car-on-page-load',
  '$(document).ready(function() {
        $("#'.CHtml::activeId($model, 't_brand_car').'").change();
    });'
);
?>

答案 2 :(得分:0)

也许这会有所帮助:

jQuery(function($) {
    $('input name["category_selection_code"]').change();
});