yii从其他下拉列表中设置选定的下拉列表

时间:2011-08-08 15:27:07

标签: drop-down-menu yii

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

这是我的js setDriver

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

这是我的控制器

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

问题是我必须在控制器(ActionFindTruck)上编写哪些代码来更改上面$ variable的值,所以如果我更换Truck,则会更改选择的驱动程序。
谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

这就是我这样做的方式,您应该能够将值更改为您的环境:

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);
    }
}

答案 1 :(得分:1)

关于在此URL创建依赖下拉列表的讨论非常好:

Creating a dependent dropdown