当下拉字段填满数据时,我试图填充文本框。但我的结果为 null。当我传递“id”时,它返回值,但当我传递名称时,它返回 null
Controller
public function actionGetForProduction($catid)
{
$bottle = Productnames::findOne($catid);
echo Json::encode($bottle);
}
_form 中的 JavaScript 代码
<?php
$script = <<< JS
$('#catid').change(function(){
var catid = $(this).val();
$.get('index.php?r=production/productnames/get-for-production',{ catid : catid }, function(data){
alert(data);
});
});
JS;
$this->registerJs($script);
?>
最佳答案
如果您将参数作为字符串传递给 findOne(),默认情况下它是主键字段。在您的情况下,您必须作为数组传递,如 findOne(['catid'=>$catid])
但是如果您希望 Controller 接受 id 或名称,请尝试以下操作:
public function actionGetForProduction()
{
if($id=Yii::$app->request->get('id')){
$bottle = Productnames::findOne($id);
}
elseif($catid=Yii::$app->request->get('catid')){
$bottle=Productnames::findOne(['catid'=>$catid]);
}
echo Json::encode($bottle);
}
关于javascript - 在 Yii2 中尝试通过 javascript 获取自动填充文本框时获取空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36768557/