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 개를 호출합니까?