Bonjour,
Après plusieurs heure de recherche et de teste divers grâce au forum yii (anglais), je n’arrive toujours pas a relier deux dropDownList dépendant.
Explication:
-j'ai trois table:
rubrique_1(id_rubrique_1, nom_rubrique_1),
rubrique_2(id_rubrique_2, id_rubrique_1, nom_rubrique_2),
rubrique_3 (id_rubrique_1, id_rubrique_1, id_rubrique_2, nom_rubrique_3)
-Quand je veux créer une rubrique_3, j'aimerai que mes dropDownList sois lier pour plus de simplicité a l'entrer de nouvelle donnée.
-voici mon code de vue (_form.php)
<div class="row">
<?php echo $form->labelEx($model,'ID_RUBRIQUE_1'); ?>
<?php echo $form->dropDownList($model,'ID_RUBRIQUE_1',CHtml::listData(rubrique1::model()->findAll(),'ID_RUBRIQUE_1','NOM_RUBRIQUE_1'),
array('empty'=> "Quelle environement principal?",
'ajax' => array(
'type'=>'POST',
'url' =>CController::createUrl('rubrique3/DynamicRubrique3'),
'data'=>array ('ID_RUBRIQUE_1'=>'js:this.value'),
'update'=>'#'.CHtml::activeId($model, 'ID_RUBRIQUE_2')
)));?>
<?php echo $form->error($model,'ID_RUBRIQUE_1'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'ID_RUBRIQUE_2'); ?>
<?php echo $form->dropDownList($model, 'ID_RUBRIQUE_2',array('empty'=>'Select')); ?>
<?php echo $form->error($model,'ID_RUBRIQUE_2');?>
</div>
-Voici mon code controller
public function ActionDynamicRubrique3()
{
$data=Rubrique2::model()->findAllBySQL('select ID_RUBRIQUE_2, NOM_RUBRIQUE_2 from RUBRIQUE_2 where ID_RUBRIQUE_1='.$_POST['ID_RUBRIQUE_1']);
$data=CHtml::listData($data, 'ID_RUBRIQUE_2', 'NOM_RUBRIQUE_2');
foreach($data as $value=>$name)
{
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
}
}
J’ai tester plein de méthode différente, mais aucune ne bouge et j’ai impression avec des test qu’il ne rentre pas dans mon controller.
Voila si vous avez déjà coder quelque chose équivalent pouvez vous m’aider merci d’avance.