首页 > 开发 > PHP > 正文

yii2组件之下拉框带搜索功能的示例代码(yii-select2)

2024-05-04 22:45:29
字体:
来源:转载
供稿:网友

简单的小功能,但是用起来还是蛮爽的。分享出来让更多的人有更快的开发效率,开开心心快乐编程。

如果你还没有使用过composer,你可就out了,看我的教程分享,composer简直就是必备神奇有木有。都说到这个点上了,我们赶紧使用composer进行安装吧。

不急,先来看看效果图是啥样的,不然都没心情没欲望看下去。

啥玩意,不感兴趣?继续看嘛,看完再操作一边才能觉得好在哪里。

有木有感觉很帅气,当然啦,远远不止,还很上档次用起来效果也是杠杠的有木有。

好了好了,抓紧时间安装,不然聊起来真是没完没了。

composer require kartik-v/yii2-widget-select2 "@dev"

特别说明,因为这里安装的dev版本,也就是开发版本,不稳定版本,如果你的项目是git托管的,composer安装下来之后这里记得删掉 /vendor/kartik-v/yii2-widget-select2目录下的.git文件,不然你提交不上去的哦
等他个大概5分钟的样子差不多了,安装就好了,然后我们就可以像下面一样开始使用了

//如果你的表单是ActiveForm,请使用use kartik/select2/Select2; //$data是键值对数组哦,key-value ,下面所声明的所有$data均为键值对数组,以该数组为例 $data = [2 => 'widget', 3 => 'dropDownList', 4 => 'yii2']; echo $form->field($model, 'title')->widget(Select2::classname(), [   'data' => $data,   'options' => ['placeholder' => '请选择 ...'], ]);
//如果你的表单是非ActiveForm,可以参考下面的use kartik/select2/Select2; echo Select2::widget([ 'name' => 'title',   'data' => $data,   'options' => ['placeholder' => '请选择...'] ]);

非ActiveFomr生成的更新数据的时候就需要默认选中,好办,加value值即可

use kartik/select2/Select2; echo Select2::widget([   'name' => 'title',   'value' => 2,   'data' => $data,   'options' => ['placeholder' => '请选择...'] ]);

但是如果你的表单是ActiveForm生成的,但是往往字段不是表字段怎么办呢?更好办啦,以上面的为例,你只需要指定$model->title = ['title1', 'title2'];即可

基本上就是这么回事,我们也就很简单的实现了下拉选择并可搜索的功能。但是,咋又冒出来了个但是呢,但是刚才是我们想的,事实是这样的,小编妹子说了,你这能不能操作再方便点,一次选择一个太麻烦了,能不能多选呀?为了实现你那ZB的伎俩,好吧,确实也简单,一行代码解决掉。

echo $form->field($model, 'title')->widget(Select2::classname(), [   'data' => $data,   'options' => ['multiple' => true, 'placeholder' => '请选择 ...'], ]);#多选的添加默认值同上            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表