我有一个更新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都是为了帮助。
答案 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();
});