2014-12-18 4 views
0

나는 여러 개의 드롭 다운 입력을 가지며 그 중 하나의 변경에 따라 텍스트 상자에 제공 할 값을 원합니다. 나는 내 드롭의 각각에 배치 코드를 가지고 나를 위해 완벽하게 작동합니다Yii2는 드롭 다운의 변경시 2 함수를 호출합니다.

<?= $form->field($model4, 'prevoditelj')->dropDownList(ArrayHelper::map(
      \app\models\Prevoditelj::find()->orderBy('idprevoditelj')->asArray()->all(), 
      'idprevoditelj', 
      'naziv' 
     ),['onchange'=>' 
      $.get("'.Url::base().'/index.php?r=zadatak/trosak&id='.$model->projekt.'_"+$("#'.Html::getInputId($model3, 'usluga').'").val()+"_"+$("#'.Html::getInputId($model3, 'dodatak').'").val()+"_"+$("#'.Html::getInputId($model3, 'obr_jedinica').'").val()+"_"+$("#'.Html::getInputId($model4, 'prevoditelj').'").val(), function(data) { 
        $("#'.Html::getInputId($model, 'trosak').'").val(data); 
       }); 
       ']) ?> 

을 컨트롤러에 내가 가진 :

public function actionCijena($id){ 
     $sve=explode("_",$id);//0 - projekt_id, 1 - usluga, 2 - dodatak/jez_kombinacija, 3 - obr_jedinica 
     $projekt = Projekt::findone($sve[0]); 
     $klijent = Klijent::findone($projekt['klijent']); 

     $cjenik_klijent = CjenikKlijent::find() 
      ->asArray() 
      ->where('klijent = :id and usluga = :usluga_id and obr_jedinica = :obr_jedinica and jez_kombinacija = :jez_kombinacija and valuta = :valuta', 
       ['id'=>$klijent['idklijent'],'usluga_id'=>$sve[1],'obr_jedinica'=>$sve[3],'jez_kombinacija'=>$sve[2],'valuta'=>$klijent['valuta']]) 
      ->all(); 
     //ako nema, gledaj opci cjenik 
     if($cjenik_klijent==array()){ 
      $cjenik_klijent = CjenikOpci::find() 
       ->asArray() 
       ->where('usluga = :usluga_id and obr_jedinica = :obr_jedinica and jez_kombinacija = :jez_kombinacija and valuta = :valuta', 
        ['usluga_id'=>$sve[1],'obr_jedinica'=>$sve[3],'jez_kombinacija'=>$sve[2],'valuta'=>$klijent['valuta']]) 
       ->all(); 
     } 
     return $cjenik_klijent[0]['cijena']; 

} 

나는 지금 내가하고 싶어하는 것이 추가되어이 문제를 다른 계산 된 값을 다른 텍스트 상자로 가져옵니다. 하지만 같은 드롭 다운에서 트리거해야합니다. 불행히도 배열을 반환 할 수 없어 2 개의 함수로 나눌 필요가 있지만 어떻게 그 중 2 개를 호출합니까?

답변

0

좋아, 나는 1 개의 문자열에 2 개의 값을 반환하고 그 다음 jquery에서 그들을 폭발시키는 해결책을 발견 할 수 있었다. 왜 내가 더 빨리 생각하지 않았는지 모르겠다.