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);
}
}
我想知道如果我錯過了什麼或者如果我做錯了。任何人都可以給我一些指導嗎?
在此先感謝。
您能更具體一點嗎? – epsilonphi 2015-03-24 20:59:59