我正在做一个yii web应用程序 我有一个应该依赖于另一个的下拉列表,我使用ajax然而它不起作用。 香港专业教育学院看到yii教程的依赖性下降和搜索到处。 http://www.yiiframework.com/wiki/24 这是我的主要下拉列表:
<div class="row">
<?php echo $form->labelEx($model, 'sourceID'); ?>
<?php
echo $form->dropDownList($model, 'sourceID', CHtml::listData(Sources::model()->findAll(), 'sourceID', 'name'), array('empty' => 'select source'), array(
'ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('reservations/atest'),
'update' => '#meal'
)
)
);
?>
<?php echo $form->error($model, 'sourceID'); ?>
</div>
这是从属下拉列表:
<div class="row">
<?php echo $form->labelEx($model, 'meal'); ?>
<?php echo $form->dropDownList($model, 'meal', array()); ?>
<?php echo $form->error($model, 'meal'); ?>
</div>
这是我的控制器动作:
public function actionAtest() {
$data = Sources::model()->findAll();
$data = CHtml::listData($data, 'sourceID', 'name');
foreach ($data as $value => $name) {
echo CHtml::tag('option', array('value' => $value), CHtml::encode($name),true);
} }
另外,我将操作添加到访问规则中。 任何帮助表示赞赏, 先感谢您。
答案 0 :(得分:0)
您在ajax
之后放置了htmlOptions
选项。这是修改后的代码
<div class="row">
<?php echo $form->labelEx($model, 'sourceID'); ?>
<?php
echo $form->dropDownList($model, 'sourceID', CHtml::listData(Sources::model()->findAll(), 'sourceID', 'name'), array('empty' => 'select source','ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('reservations/atest'),
'update' => '#meal'
)
)
);
?>
<?php echo $form->error($model, 'sourceID'); ?>
</div>
而不是使用表单下拉列表使用CHtml::dropDownList
作为依赖下拉列表。
echo CHtml::dropDownList('meal','', array());
您也可以使用CActiveForm::dropDownList
,但在这种情况下,您必须在CHtml::resolveNameId
的{{1}}选项中使用update