2012-04-21 3 views
3

У меня есть раскрывающийся список, который обновляет поле ajax. Все работает нормально, но поле ajax не заполняется данными о загрузке страницы. Как я могу принудительно обновить поле ajax, при загрузке страницы?YII: Как обновить данные ajax при загрузке страницы?

Это DropDownList в виду:

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 статьи/GetContentFields ждет category_selection_code параметр в массиве $ _POST. И мы должны установить его в данных раздел Аякса части:

данные: {category_selection_code: $ ('# category_selection_code') Вал().},


Thnx все для помощь.

ответ

1

Я не думаю, что вы сделали это правильно. Во-первых, четвертый параметр функции CHtml :: dropdownList() представляет собой массив вариантов HTML. See the function signature for CHtml::dropdownList()

Поместите свой вызов AJAX в

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

Это правильно, вы можете использовать опцию «ajax» в htmlOptions. Yii позволяет это через [clientChange] (http://www.yiiframework.com/doc/api/1.1/CHtml#clientChange-detail) http://www.yiiframework.com/doc/api/1.1/CHtml#clientChange -detail ") свойство/метод. –

+0

Если бы вы нашли мой ответ полезным, я был бы признателен за голосование! Благодарю. – verisimilitude

+1

Я говорил, что вы ошибаетесь **, сомневаясь в том, что ** четвертый параметр (** 'htmlOptions' **) не может иметь **' 'ajax'' **. ** –

0

Может быть, это поможет:

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

события изменения Огня работало для меня. Кроме того, я нашел полезным метод .

<?php 
$cs = Yii::app()->clientScript->registerScript(
    'update-brand-car-on-page-load', 
    '$(document).ready(function() { 
     $("#'.CHtml::activeId($model, 't_brand_car').'").change(); 
    });' 
); 
?> 
Смежные вопросы