我最近刚刚学习了Yiibooster而且坚持了这个...... 我有一个依赖的dropdownlistgroup使用yii booster和ajax,因此在选择matkul后将生成kelas数据。如果我使用yii的dropdownlist但它想要一个使用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),
)
)
);?>
问题是当我使用 dropdownlistgroup 时,ajax不起作用,当我使用正常的下拉列表测试它时,如下面的代码工作正常,对不起我的英语。
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());
答案 0 :(得分:0)
我没有听说函数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
答案 1 :(得分:0)
您应该在widgetOptions中添加ajax选项 - &gt; htmlOptions - &gt; 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',
)
),
)
);
答案 2 :(得分:-1)
不是最有效的解决方案,但它有效, 最后查看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>
重要的是'class'把html类,'class'=&gt; 'col-sm-3 control-label'和'class'=&gt; 'form-control',用于dropDownList