2016-07-30 5 views
3

의존성 드롭 다운을 생성했습니다. 이제 업데이트 페이지에서이 값을 가져 오려고합니다. 어떻게해야합니까?Yii2의 Dependent 드롭 다운에서 값을 채우십시오

나는이 드롭 다운 만든 - 나는 클라이언트의 값을 가지고 업데이트 페이지 1 클라이언트 및 제 2 회 직원 을하지만 (그것이 의존의 드롭 다운이기 때문에) 내가

양식을 직원의 가치를 얻을하지 않았다

<?php 
    //First drop-down 
    echo $form->field($model, 'client')->dropDownList($Client, 
    ['prompt'=>'-Select Client-', 
     'onchange'=>' 
     $.post 
     ( 
      "'.urldecode(
     Yii::$app->urlManager->createUrl 
     ('leads/lists&id=')).'"+$(this).val(), function(data) 
     { 
      $("select#staff_id").html(data); 
     }); 
    ']); ?> 

    // depend dropdown 
    <?php echo $form->field($model, 'staff') 
      ->dropDownList 
      (  
       ['prompt'=>'-Choose a Sub Category-'], 
       ['id'=>'staff_id','value'=>$Staff] 
      ); 
    ?> 

컨트롤러

public function actionLists($id) 
{ 
    $sql = "select * from staff where client='$id' "; 
    //exit; 
    $models = Staff::findBySql($sql)->asArray()->all(); 
    //echo "<pre>";print_r($model);exit; 

    if(sizeof($models) >0){ 
     echo "<option>-Choose a Sub Category-</option>"; 
     foreach($models as $model){ 
      echo "<option value='".$model['id']."'>".$model['fname']."</option>"; 
     } 
    } 
    else{ 
     echo "<option>-Choose a Sub Category-</option><option></option>"; 
    } 

} 
+0

안녕하세요. 당신 문제는 무엇입니까? 업데이트 페이지의 – yafater

+0

드롭 다운에서 값을 가져올 수있는 방법 –

+0

업데이트 컨트롤러를 넣으십시오. – yafater

답변

1

F $ 모델 -> 클라이언트를 사용하여 모든 직원이 마음 업데이트 작업에서

<? 
public function actionCreate() 
{ 
    $modelsStaff=null; 
    $model = new model(); 
    if ($model->load(Yii::$app->request->post()) && $model->save()) 
    { 
     return $this->redirect(['view', 'id' => $model->id]); 
    } 
    else 
    { 
     return $this->render('create', [ 'model' => $model,'modelsStaff'=>$modelsStaff]); 
    } 
} 
public function actionUpdate($id) 
{ 
    $model = $this->findModel($id); 
    if ($model->load(Yii::$app->request->post()) && $model->save()) 
    { 
     return $this->redirect(['view', 'id' => $model->id]); 
    } 
    else 
    { 
     $sql = "select * from staff where client='$model->client'"; 
     $modelsStaff = Staff::findBySql($sql)->asArray()->all();  
     return $this->render('update', [ 'model' => $model,'modelsStaff'=>$modelsStaff]); 
    } 
} 

?> 

을하고이 클라이언트에서 모든 직원을 얻고이

같은보기를 업데이트 : IRST 아래처럼 생성하고 업데이트 행동에 $ modelsStaff 변수를 추가
<?php 
    //First drop-down 
    echo $form->field($model, 'client')->dropDownList($Client, 
    ['prompt'=>'-Select Client-', 
     'onchange'=>' 
     $.post 
     ( 
      "'.urldecode(
     Yii::$app->urlManager->createUrl 
     ('leads/lists&id=')).'"+$(this).val(), function(data) 
     { 
      $("select#staff_id").html(data); 
     }); 
    ']); ?> 

    // depend dropdown 
    <?php echo $form->field($model, 'staff')->dropDownList 
      ($modelsStaff,  
       ['prompt'=>'-Choose a Sub Category-'], 
       ['id'=>'staff_id','value'=>$Staff] 
      ); 
    ?> 
+0

내가 고통 받고있는 같은 문제. 하지만이 솔루션은 나에게 효과가 없었다. – Sweety

관련 문제