gpt4 book ai didi

javascript - 如何在 yii2 中两个单独的下拉列表的文本框中填充数据

转载 作者:行者123 更新时间:2023-12-03 06:20:16 26 4
gpt4 key购买 nike

当选择“年份”和“控制台”时,我尝试在文本框中填充“num”。数据库查询应该像这样运行 - 当年份 = 'someyear' 且控制台 = 'someconsole' 时,从表中选择 max(num)+1。我的 Controller 操作看起来像 -

public function actionGetForNum($yearid , $consoleid)
{
$num = Bills::find()->select('(max(num) + 1) as num')->where(['bills_year'=>$yearid])->andWhere(['console'=>$consoleid])->asArray()->one();
echo Json::encode($num);
}

我正在使用 select2 小部件来选择年份和控制台。年份和控制台并不相互依赖。

<?= $form->field($model, 'bills_year')->widget(Select2::classname(), [
'data' => ArrayHelper::map(Year::find()->orderBy(['yid' => SORT_DESC,])->all(),'year_year','year_year'),
'language' => 'en',
'options' => ['placeholder' => 'Select Year', 'id' => 'yearid'],
'pluginOptions' => [
'allowClear' => true
],
]); ?>

<?= $form->field($model, 'console')->widget(Select2::classname(), [
'data' => ArrayHelper::map(Console::find()->orderBy(['consoleid' => SORT_ASC,])->all(),'console','console'),
'language' => 'en',
'options' => ['placeholder' => 'Select Console','id' => 'consoleid'],
'pluginOptions' => [
'allowClear' => true
],
]); ?>

我尝试过的 JavaScript 代码是 -

<?php
/* start getting the num */
$script = <<< JS
$(function(){
$('#yearid').change(function(){
getNum();
});
$('#consoleid').change(function(){
getNum();
});

var yearid = $(this).val();
var consoleid = $(this).val();

var getNum = $.get('index.php?r=invoice/bills/get-for-num',{ yearid : yearid, consoleid : consoleid }, function(data){
alert(data);
var data = $.parseJSON(data);
$('#bills-num').attr('value',data.num);
});

});


JS;
$this->registerJs($script);
/* end getting the num */
?>

在此代码中,我收到错误 - TypeError: getNum is not a function这是错误屏幕 - enter image description here请建议如何纠正它。

更新 -我更改了 JavaScript 代码,如下 -

<?php
/* start getting the num */
$script = <<< JS
$(function(){
$('#yearid').change(function(){
getNum();
});
$('#consoleid').change(function(){
getNum();
});

var yearid = $(this).val();
var consoleid = $(this).val();

var getNum = function(){
var yearid = String($('#yearid').val());
var consoleid = String($('#consoleid').val());
$.get('index.php?r=invoice/bills/get-for-num',{ yearid : yearid, consoleid : consoleid }, function(data){
alert(data);
var data = $.parseJSON(data);
var getNum = data;
$('#bills-num').val(getNum);
});

} ;

});


JS;
$this->registerJs($script);
/* end getting the num */
?>

我得到了所需的值,但它没有显示在文本框中。现在已经非常接近了。请帮忙。请检查下面的屏幕截图 enter image description here

最佳答案

$('#bills-num').val(getNum["num"]);

关于javascript - 如何在 yii2 中两个单独的下拉列表的文本框中填充数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38904554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com