2015-03-19 67 views
0

我在編程方面很新手,但我正在努力變得更好。話雖如此,我會明白的。我正在開發一箇中等規模的應用程序,其中一個模塊負責註冊新用戶。表格中包括用戶的位置,除以3:國家(Paises),省(Provincias)和地點(Localidades),您可能已經猜到了,一個國家包含很多省份,而且省份很多像這篇文章我用作Yii Framework's Wiki的指南。儘管我所有的嘗試都無法開展工作,但省級Dropdownlist從未滿足要求,我甚至無法嘗試沒有省級的地點。使用AJAX在Yii上創建依賴的下拉列表

這裏是從視圖代碼:

<div class="row"> 
    //This is the part that handes the Countries, it loads all the countries properly on the dropdownlist. 
    <?php echo CHtml::label('Pais','paises_id',array ('required'=>true));?> 
    <?php 
     $pmodels = Paises::model()->findAll(); 
     $data = array(); 
     foreach ($pmodels as $m) 
     $data[$m->id] = $m->nombre;  
     echo CHtml::dropDownList('paises_id', '', $data ,array('empty' => 'Seleccione su pais de procedencia'), 
      array(
       'ajax' => array(
        'type'=>'POST', 
        'url'=>CController::createUrl('estudiantes/cargarprovincias'), 
        'update'=>'#provincias_id', //selector to update 
        ) 
       ) 
      ); 
    ?> 
</div> 

<div class="row"> 
    //This is the part that handles provinces (it doesn't work) 
    <?php echo CHtml::label('Provincia','provincias_id',array ('required'=>true));?> 
    <?php echo CHtml::dropDownList('provincias_id','', array(), array('empty' => 'Seleccione su provincia de procedencia'), 
      array(
       'ajax' => array(
        'type'=>'POST', 
        'url'=>CController::createUrl('estudiantes/cargarlocalidades'), //url to call. 
        //Style: CController::createUrl('currentController/methodToCall') 
        'update'=>'#'.CHtml::activeId($model,'local_id'), //selector to update 
        ) 
       ) 
      ); 
    ?> 
</div> 

<div class="row"> 
    //This handles the locations 
    <?php echo $form->labelEx($model,'local_id'); ?> 
    <?php echo CHtml::dropDownList('local_id','', array(),array('empty' => 'Seleccione su localidad de procedencia'));?> 
    <?php echo $form->error($model,'local_id'); ?> 
</div> 

這是我對控制器進行的代碼,以下維基:

public function actionCargarprovincias() 
{ 
    $data=Provincias::model()->findAll('parent_id=:parent_id', 
       array(':parent_id'=>(int) $_POST['paises_id'])); 

    $data=CHtml::listData($data,'id','nombre'); 
    foreach($data as $value=>$nombre) 
    { 
     echo CHtml::tag('option', 
       array('value'=>$value),CHtml::encode($nombre),true); 
    } 
} 
public function actionCargarlocalidades() 
{ 
    $data=Localidades::model()->findAll('parent_id=:parent_id', 
       array(':parent_id'=>(int) $_POST['provincias_id'])); 

    $data=CHtml::listData($data,'id','nombre'); 
    foreach($data as $value=>$nombre) 
    { 
     echo CHtml::tag('option', 
       array('value'=>$value),CHtml::encode($nombre),true); 
    } 
} 

我想知道如果我錯過了什麼或者如果我做錯了。任何人都可以給我一些指導嗎?

在此先感謝。

回答

0

您是否嘗試過與YII的關係​​

+0

您能更具體一點嗎? – epsilonphi 2015-03-24 20:59:59