Ajax Yii2在更改下拉列表时调用2个函数
我有几个下拉输入,在其中任何一个的改变,我想为一个文本框提供一个值。 我在每个下拉列表上都有一个代码,它非常适合我:Ajax Yii2在更改下拉列表时调用2个函数,ajax,get,return,onchange,yii2,Ajax,Get,Return,Onchange,Yii2,我有几个下拉输入,在其中任何一个的改变,我想为一个文本框提供一个值。 我在每个下拉列表上都有一个代码,它非常适合我: <?= $form->field($model4, 'prevoditelj')->dropDownList(ArrayHelper::map( \app\models\Prevoditelj::find()->orderBy('idprevoditelj')->asArray()->all(),
<?= $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 );
});
']) ?>
我的问题是,现在我想在另一个文本框中添加另一个计算值。但它需要在相同的下拉菜单上触发。不幸的是,Get无法返回数组,因此我需要将其拆分为两个函数,但如何调用其中的两个?好的,我找到了一个解决方案,在一个字符串中返回两个值,然后在jquery中分解它们。不知道为什么我没早点想到
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'];
}