3

我有一个更新 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', 

                        )
            )
);

*更新

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

$(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 处理文章/GetContentFields的控制器正在等待$_POST 数组中的category_selection_code参数。我们应该在ajax部分的数据部分设置它:

数据:{类别选择代码:$('#category_selection_code').val()},


谢谢大家的帮助。

4

3 回答 3

1

我不认为你上面所做的是正确的。首先,CHtml::dropdownList() 函数的第四个参数是一个 HTML 选项数组。查看 CHtml::dropdownList() 的函数签名

将您的 AJAX 调用放入

$(document).ready(function() {
 //Your call goes in here. 
});
于 2012-04-21T11:59:59.857 回答
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();
    });'
);
?>
于 2013-01-20T14:02:33.707 回答
0

也许这会有所帮助:

jQuery(function($) {
    $('input name["category_selection_code"]').change();
});
于 2012-04-21T15:33:33.207 回答