我的下拉列表显示了模型中的数据,但是当我选择它们时,它并没有相应地过滤数据。
if (knob.x > 0 && knob.x < 0.01) {
knob.x = 0;
}
//etc.
上面提到的是搜索表单中的下拉列表。在filterSearch模型中,我使用了我的查询,如下面提到的代码。
<?php $items = ArrayHelper::map(app\models\Facility::find()->all(),'facility_id' ,'facility_country');?>
<?= $form->field($model, 'facility_country')->dropDownList($items)->label(false); ?>
我可以知道问题是什么吗?谢谢!!
答案 0 :(得分:1)
$items
变量的值来自您的\app\models\Facility
类,其数组格式如下:
[
'facility_id' => 'facility_country',
...
]
当您将此数组与dropDownList()一起使用时,您说您正在发送密钥&#39; facility_id&#39;到你的形式。
因此,在您的搜索模型中,您需要按ID搜索,例如:
->orFilterWhere(['like', 'facility_id', $this->facility_country]);
或者您也可以按名称进行搜索(我想这就是您想要的):
$items = ArrayHelper::map(app\models\Facility::find()->all(),'facility_country' ,'facility_country');
答案 1 :(得分:0)
解决方案非常简单..问题是它没有提交只是无所事事的表单。 我不只是提交刚刚添加onchange事件的表单作为下面的代码。
<?php $items = ArrayHelper::map(app\models\Facility::find()->all(),'facility_country' ,'facility_country');?>
<?= $form->field($model, 'facility_country')->dropDownList($items,['class'=> 'col-sm-2 col-lg-2 col-xs-7 pull-left', 'style'=> 'height:34px;','onchange' => 'this.form.submit()'])->label(false);?>
谢谢你的帮助..