2016-07-30 8 views
3

私はDependentドロップダウンを作成しましたので、私は更新ページでこれらの値を取得したいと思います。どのようにできるのか ?Yii2のDependentドロップダウンリストの値を

私は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

hello.whatあなたの問題は何ですか? – yafater

+0

更新ページで、値を取得するにはどうすればいいですか? –

+0

更新コントローラを入れてください – yafater

答えて

1

F IRST以下のようなあなたの作成および更新アクションに$ modelsStaff変数を追加:あなたのupdateアクションで

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

?> 

を$モデル - >クライアントを使用して、すべてのスタッフを見つけて、このクライアントの下ですべてのスタッフを取得し、この

のようなあなたのビューを更新
<?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

関連する問題