2013-01-03 62 views
1

我希望有兩個下拉依賴多點下來Yii框架

  1. 選擇組
  2. 選擇成員(多下拉)

當用戶選擇第一個下拉(集團) ,我想動態地與所選組的成員填充Members Multidropdowen。

選擇成員是一個多重降低,用戶可以選擇多個然後一個成員。

我能夠完成依賴下拉或獨立的Multidropdown,但我無法整合這兩者。 我試過擴展http://www.yiiframework[dot]com/extension/emultiselecthttp://www.yiiframework[dot]com/extension/echmultiselect

+0

HTTP ://www.yiiframework.com/extension/cascadedropdown –

回答

0

您實現一個AJAX更新第一個下拉更新:第二個:

echo CHtml::dropDownList('country_id','', array(1=>'USA',2=>'France',3=>'Japan'), 
array(
    'ajax' => array(
    'type'=>'POST', //request type 
    'url'=>CController::createUrl('currentController/dynamiccities'), //url to call. 
    //Style: CController::createUrl('currentController/methodToCall') 
    'update'=>'#city_id', //selector to update 
    //'data'=>'js:javascript statement' 
    //leave out the data key to pass all form values through 
))); 
//empty since it will be filled by the other dropdown 
echo CHtml::dropDownList('city_id','', array()); 

,並在你的控制器,你可以有:

public function actionDynamiccities() 
{ 
    $data=Location::model()->findAll('parent_id=:parent_id', 
    array(':parent_id'=>(int) $_POST['country_id'])); 

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

來源: http://www.yiiframework.com/wiki/24/