зависимый выпадающий списокGroup Yii Booster

Недавно я изучил Yiibooster и застрял с этим. У меня есть зависимая группа раскрывающихся списков, использующая yii booster с ajax, поэтому данные kelas будут генерироваться после выбора маткула. Он отлично работает, если я использую выпадающий список из yii, но мне нужна красивая форма с использованием формы Yiibooster.

<?php
echo $form->dropDownListGroup(
    $model,
    'matkul',
    array(
        'wrapperHtmlOptions' => array(
            'class' => 'col-sm-5',
        ),
        'widgetOptions' => array(
            'data' => $matkullist,
            'htmlOptions' => array('multiple' => false),
        ),
        'prompt'=>'Select',
        array(
        'ajax'=> array(
            'type'=>'POST', //request type
            'url'=>CController::createUrl('Kp/Getkelas'), //url to call.
            'update'=>'#'.CHtml::activeId($model,'kelas'),  //selector to update
        )
        )
    )
); ?>


<?php echo $form->dropDownListGroup(
    $model,
    'kelas',
    array(
        'wrapperHtmlOptions' => array(
            'class' => 'col-sm-5',
        ),
        'widgetOptions' => array(
            'htmlOptions' => array('multiple' => false),
        )
    )
);?>

Проблема в том, что ajax не работает, когда я использую dropdownlistgroup, когда я тестирую его с обычным dropdownlist, как показано ниже, код работает нормально, извините за мой английский.

echo CHtml::dropDownList('country_id','', array(1=>'USA',2=>'France',3=>'Japan'),
    array(
        'ajax' => array(
            'type'=>'POST', //request type
            'url'=>CController::createUrl('Kp/Getkelas'), //url to call.
            'update'=>'#city_id', //selector to update
        )));
echo CHtml::dropDownList('city_id','', array());

person user3424580    schedule 23.01.2015    source источник


Ответы (3)


Я ничего не слышал о функции dropdownListGroup.
Используя Yiibooster, вы можете добавить раскрывающийся список как,

$this->widget(
'booster.widgets.TbSelect2',
array(
    'asDropDownList' => false,
    'name' => 'clevertech',
    'options' => array(
        'tags' => array('clever', 'is', 'better', 'clevertech'),
        'placeholder' => 'type clever, or is, or just type!',
        'width' => '40%',
        'tokenSeparators' => array(',', ' ')
    )
)
);

ссылка: http://yiibooster.clevertech.biz/widgets/forms_inputs/view/select2.html

person Rogin Thomas    schedule 23.01.2015

Вы должны поместить параметры ajax в widgetOptions -> htmlOptions -> ajax

$form->dropDownListGroup($model, 'beer', array(
      'widgetOptions' => array(
        'data' => CHtml::listData(Beer::model()->findAll(), 'id', 'name'),
        'htmlOptions' => array(
          'ajax' => array(
            'type' => 'POST',
            'url' => Yii::app()->createUrl('/beer'),
            'update' => '#beer',

          )
        ),
      )
    );
person oddtwelve    schedule 18.03.2015

не самое эффективное решение, но оно работает, глядя на html в конце, мы имеем

<div class="form-group">
    <?php echo $form->labelEx($model,'matkul',array('class' => 'col-sm-3 control-label')); ?>
      <div class="col-sm-5 col-sm-9">
         <?php echo $form->dropDownList($model,'matkul',$matkullist ó array(),
             array('class' => 'form-control','ajax'=>array('type'=>'POST','url'=>CController::createUrl('Kp/Getkelas'),'update'=>'#'.CHtml::activeId($model,'kelas')),'empty'=>'Select')); ?>
         <?php echo $form->error($model,'matkul'); ?>
      </div>
</div>

важно, чтобы «класс» помещал класс html, «класс» => «col-sm-3 control-label» и «class» => «form-control», для dropDownList

person javier prieto    schedule 14.03.2015