2010-11-26 8 views
1

나는 국가, 주, 도시 테이블이 있으며 3 개의 드롭 다운 메뉴가 필요합니다. 미국과 같은 국가를 선택하면 상태 드롭 다운 메뉴에 자동으로 아래의 상태 만 표시됩니다 캘리포니아 다음과 같은 주를 선택하면 CITY DOWN 메뉴는 캘리포니아 주 아래 도시에만 표시됩니다.종속 드롭 다운 상자

현재 yii에서이 문제를 구현하는 데 문제가 있습니다. 나는이 _form 파일 을 가지고 있는데이 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); 
    } 
} 

이이 _form보기 파일

<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> 

I 출신에서입니다이 작업을하는 방법을 알아낼 수 없습니다 그 변경이 하나

<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'); ?> 
+0

현재 직면하고있는 문제는 무엇입니까? –

+0

여기에 http://i54.tinypic.com/wtsxvn.jpg의 스크린 샷이 있으며이 또한 – sasori

답변

-2

이 문제는 해결되었습니다. yii 위키 문서

+2

링크를 추가 할 수 있습니까? 솔루션을 찾은 곳으로? –

+0

http://www.yiiframework.com/wiki/24 – WebDevPT

1

변화로 상기 해당 코드 라인이
$ data = $ command-> execute();
~
$ data = $ command-> query();

+0

입니다. 현재 다음 두 개의 드롭 다운 메뉴를 업데이트하는 데 문제가 있습니다. 위의 코드를 편집했습니다. – sasori