是否可以在yii 1的下拉列表中放置搜索过滤器?

时间:2015-09-23 17:01:45

标签: php search drop-down-menu yii

我的表单中有一个下拉列表...它的内容来自不同的模型......这是我的代码

<?php echo $form->labelEx($model,'pr_id'); ?>
<?php echo $form->dropDownList($model,'pr_id', CHtml::listData(PatientRecord::model()->findAll(), 'pr_id', 'first_name'), array('empty'=>'Select Patient')); ?>
<?php echo $form->error($model,'pr_id'); ?>

假设该表中有大量数据,我认为用户不愿意滚动选择... 有没有办法在下拉列表中放入搜索过滤器? 我认为在Yii2中这是可能的,但我现在正在使用Yii1进行项目,所以......有什么建议吗?

另外,有没有办法在下拉列表的显示屏上显示first_name和last_name?

对不起初学者的问题 任何帮助将受到高度赞赏:D

1 个答案:

答案 0 :(得分:1)

您可以使用此Select2 Extension,下载扩展程序并将其放在/protected/extensions目录下。

只需将其添加到您的视图中,例如:

<?php 
    $this->widget('ext.select2.ESelect2',array(
      'model'=>$model,
      'attribute'=>'pr_id',
      'data'=>$model->searchPatient(),//function to provide data
      // or
      //'data'=>CHtml::listData(PatientRecord::model()->findAll(), 'id', 'first_name')
    ); 
?>

并在您的模型中:

<?php
    public function searchPatient() {
        $data         = array();
        $patientModel = PatientRecord::model()->findAll();
        foreach($patientModel as $patient){
            $data[] = $patient->first_name." ".$patient->last_name;
        }
        return $data;
    }
?>

这就是你需要做的一切,希望有所帮助:)