I have a dropdown that I want to populate when an item in another dropdown is selected. 两个下拉列表都与从控制器传递的数据/模型相关联。第一个下拉列表是通过调用模型中的函数从数据库中填充的。这是表格,
echo $form->dropDownListRow($modelunit,
'superunit',
$model->getSunits(),
array(
'ajax' => array(
'type'=>'POST',
'url'=>CController::createUrl('user/getunits'),
'update'=>'#unit_id',
)));
echo CHtml::dropDownList('unit_id','', array());
这是 Ajax 调用的操作 user/getunits。
$data=Unit::model()->findAll('sid=:sid',
array(':sid'=>(int) $_POST['superunit']));
$data=CHtml::listData($data,'id','name');
foreach($data as $value=>$name)
{
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
}
选择第一个下拉列表时,我不断收到错误“未定义的索引:超级单元”。此外,您可能会注意到我在第一个下拉列表中使用 form->dropDownListRow,而在第二个下拉列表中使用 CHtml::dropDownList。那是因为我对如何确保正确使用 ajax 正确填充下拉列表并正确绑定到模型的语法一无所知。