【问题标题】:Yii2 call 2 functions on change of a dropdownYii2 在更改下拉列表时调用 2 个函数
【发布时间】:2014-12-18 21:34:53
【问题描述】:

我有几个下拉输入,并且在更改其中任何一个时,我想为文本框提供一个值。 我在每个下拉列表中都有一个代码,它非常适合我:

<?= $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'];

}

我的问题是现在我想将另一个计算值添加到另一个文本框。但它需要在同一个下拉菜单上触发。不幸的是 Get 不能返回一个数组,所以我需要将它分成 2 个函数,但是我如何调用其中的 2 个呢?

【问题讨论】:

    标签: ajax get return onchange yii2


    【解决方案1】:

    好的,我设法找到一个解决方案,在 1 个字符串中返回 2 个值,然后在 jquery 中分解它们。不知道为什么我没有早点想到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多