我的表单上有下列程式码:
<?php
$unitPrices = ArrayHelper::map(Item::find()->where('isApproved and
vendor_id=:id', [':id' => $vendorId])->all(),'id','unitPrice');
?>
- 这会给我一个名为unitPrices的Map,其中的键值对是id-unitPrice
<?= $form->field($model, 'item_id')->dropDownList(
ArrayHelper::map(Item::find()->where('isApproved and vendor_id=:id', [':id' => $vendorId])->all(),'id','itemCode','description'),
[
'prompt'=>'--Select Item--',
'id'=>'item_selected',
'onchange' => '$("#priceOnLine").val($unitPrices[item_id_value]);',
])
?>
- 我想做的是,当从下拉列表中选择一个项目时,它还使用unitPricesMap设置名为priceOnLine的文本字段的值,其中id是从下拉列表中选择的项目的值。
- 我尝试将文本字段设置为静态值(100),它可以工作,但我不知道如何使用Map设置它。
'onchange' => '$("#priceOnLine").val(100);',
提前感谢您的帮助:D
1条答案
按热度按时间bz4sfanl1#
您需要获取所选选项的文本,您可以在视图顶部添加以下脚本,并从
dropDown()
中删除'onchange' => '$("#priceOnLine").val($unitPrices[item_id_value]);',
希望能有所帮助