在Yi2中尝试通过javascript获取自动填充文本框时获取空值
我试图在下拉字段中填充数据时填充文本框。但我的结果是null。当我传递'id'时,它返回值,但当我传递名称时,它返回null 控制器在Yi2中尝试通过javascript获取自动填充文本框时获取空值,javascript,php,yii2,Javascript,Php,Yii2,我试图在下拉字段中填充数据时填充文本框。但我的结果是null。当我传递'id'时,它返回值,但当我传递名称时,它返回null 控制器 public function actionGetForProduction($catid) { $bottle = Productnames::findOne($catid); echo Json::encode($bottle); } Javascript代码的_形式 <?php $script = &l
public function actionGetForProduction($catid)
{
$bottle = Productnames::findOne($catid);
echo Json::encode($bottle);
}
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])一样作为数组传递
但如果希望控制器接受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);
}
默认情况下,若将参数作为字符串传递给findOne(),则它是一个主键字段。在您的情况下,必须像findOne(['catid'=>$catid])一样作为数组传递
但如果希望控制器接受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);
}