Php 带Yii的相关下拉框

Php 带Yii的相关下拉框,php,drop-down-menu,yii,Php,Drop Down Menu,Yii,我有一个国家,州,城市表,我需要3个下拉菜单 其中,如果我选择一个国家,如美国,则州下拉菜单将自动仅显示美国管辖下的州,然后,如果我选择一个州,如加利福尼亚,则城市下拉菜单将仅显示加利福尼亚管辖下的城市 我目前在yii中实现此功能时遇到问题。我有这个表格文件 其中应包括这3个下拉列表。我有一个部分代码,但我不知道该怎么做 这是控制器发出的 public function actionDynamicstates() { $sql = "SELECT StateName FROM gg_t_wo

我有一个国家,州,城市表,我需要3个下拉菜单 其中,如果我选择一个国家,如美国,则州下拉菜单将自动仅显示美国管辖下的州,然后,如果我选择一个州,如加利福尼亚,则城市下拉菜单将仅显示加利福尼亚管辖下的城市

我目前在yii中实现此功能时遇到问题。我有这个表格文件 其中应包括这3个下拉列表。我有一个部分代码,但我不知道该怎么做

这是控制器发出的

public function actionDynamicstates()
{
  $sql = "SELECT StateName FROM gg_t_worldareasstates ".
         "WHERE CountryID = :countryid";
  $command = Yii::app()->createCommand($sql);
  $command->bindValue(':countryid', $_POST['CountryID'], PDO::PARAM_INT);
  $data = $command->execute();

  $data = CHtml::listData($data,'StateID','StateName');
  foreach($data as $value=>$name)
  {
    echo CHtml::tag('option',
    array('value'=>$value),CHtml::encode($name),true);
  }
}
这是来自_表单视图文件

<div class="row">
<?php 
$country = new CDbCriteria; 
$country->order = 'CountryName ASC';
echo $form->dropDownList($model, 'CountryID', 
  CHtml::listData
  (
    Worldareascountries::model()->findAll($country),
    'CountryID',
    array
    (
      'ajax' => array
      (
        'type' => 'POST',
        'url' => CController::createUrl('wsmembersdetails/dynamicstates'),
        'update' => '#StateID',
      )
    )
  )
);
echo $form->dropDownList('StateID','', array());
?>
</div>

我把上面的代码改成了这个

    <div class="row">
    <?php echo $form->labelEx($model,'Country'); ?>
    <?php 
          $country = new CDbCriteria; 
          $country->order = 'CountryName ASC';
    ?>
    <?php 
          echo $form->dropDownList($model,'CountryID',CHtml::listData(Worldareascountries::model()->findAll($country),'CountryID','CountryName'),
                    array(
                        'ajax' => array(
                        'type' => 'POST',
                        'url' => CController::createUrl('wsmembersdetails/dynamicstates'),
                        'update' => "#StateID"
                    )       
              )
          );
    ?>
    <?php echo $form->error($model,'CountryID'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'State'); ?>
    <?php 
          $state = new CDbCriteria;
          $state->order = 'StateName ASC';
    ?>
    <?php 
          echo $form->dropDownList($model,'StateID',CHtml::listData(Worldareasstates::model()->findAll($state),'StateID','StateName'),
                    array(
                        'ajax' => array(
                        'type' => 'POST',
                        'url' => CController::createUrl('wsmembersdetails/dynamiccities'),
                        'update' => '#CityID'
                    )   
                )
          );
    ?>
    <?php echo $form->error($model,'StateID'); ?>
</div>


<div class="row">

    <?php echo $form->labelEx($model,'CityID'); ?>
     <?php echo $form->dropDownList($model,'CityID','',array());?>
    <?php echo $form->error($model,'CityID'); ?>

更改此行
$data=$command->execute()


$data=$command->query()

这个问题已经解决了,它在yii wiki文档上

这是屏幕截图,这张也差不多了,但是目前在更新下两个下拉菜单时遇到了问题,我编辑了上面的代码。你能添加找到解决方案的链接吗?