yii установить выбранный выпадающий список из другого выпадающего списка - PullRequest
0 голосов
/ 08 августа 2011

У меня есть 4 выпадающих списка, 1 выпадающий список в качестве мастера для управления 3 выпадающими списками других, это мой пример кода для основного выпадающего списка.

<div class="row">
        <?php echo $form->labelEx($truck,'Truck'); ?>
        <?php echo CHtml::dropDownList('idt',$truck->idt,CHtml::listData(Truck::model()->findAll(),'idt','number'),
        array(
            'value'=>'1',
            'ajax' => array(
                'type'=>'POST', 
                'url'=>CController::createUrl('FindTruck'),             
                'data'=>array('idt'=>'js:this.value'),
                'dataType'=>'html',

            ))); ?>
    </div>

    <div class="row">

        <?php echo $form->labelEx($employee,'Driver'); ?>
        <?php echo CHtml::dropDownList('driver','$variable',CHtml::listData(Employe::model()->findAll(),'ide','name')); ?>
    </div>

Это My js setDriver

function setDriver(name,value){
    document.getElementById(name).value = value
}

и этомой контроллер

public function actionFindTruck() {
   echo "<script>setDriver('driver',3);</script>"; // test satatic data
}

вопрос, какой код я должен написать на контроллере (ActionFindTruck), чтобы изменить значение переменной $ выше, поэтому, если я изменю Truck, драйвер будет выбран.
Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Есть хорошее обсуждение создания зависимых выпадающих по этому URL:

Создание зависимого раскрывающегося списка

1 голос
/ 08 августа 2011

Вот как я это сделал, вы должны иметь возможность изменить значения в вашей среде:

public function actionUpdateDropdown()
{   
    // ajax function to retrieve categories by country:
    $lang_id = (!empty($_POST['feature']['language_id'])) ? $_POST['feature']['language_id'] : DEFAULT_LANG_ID;

    $data = category::model()->findAll('language_id=:parent_id', 
                  array(':parent_id'=>(int) $lang_id));

    $data = CHtml::listData($data,'id','name');
    if (!empty($data)) { echo '<option value="">Select Category...</option>'; }
    foreach($data as $value=>$name) {
        echo CHtml::tag('option',
            array('value'=>$value),CHtml::encode($name),true);
    }
}
...