功能简单小巧,但使用起来相当爽。分享一下,让更多的人有更快的开发效率,开心的编程。
如果你还没用过composer,可以出去。看看我的教程,分享一下。作曲家简直是必须的。说到这里,让我们使用composer快速安装它。
别急,我们来看看渲染图是什么样子的,不然我们没有心情也没有欲望去读。
怎么回事,不感兴趣?继续看。只有看了再操作才能感受到什么是好的。
有木头很帅。当然,远不止这些。等级很高。效果也是杠杆里有木头。
好了,好了,赶快安装,不然没完没了。
Composer需要kartik-v/yii 2-widget-select 2 ' @ dev ',因为这里安装的dev版本是开发版本和不稳定版本,如果你的项目是git托管的,记得删除vendorkartik-v The。git文件在yii2-widget-select2目录下,否则不能提交。等他看5分钟左右,安装好,然后我们就可以像下面这样开始使用了
//如果您的表单是活动表单,请使用“使用kartik select 2 select 2”;//$data是一个键值对数组,键值。下面声明的所有$数据都是键值对数组。以这个数组为例。$ data=[2=' widget ',3=' dropdownlist ',4=' yii 2 '];Echo $ form-field ($ model,' title ')-widget(select 2:3360 class name(),['data'=$ data,' options'=['placeholder'='请选择.'],]);//如果您的表单处于非活动状态,请参考下面的使用卡片选择2 选择2;Echo select 2:小部件(['name'=' title ',' data'=$ data,' options'=['placeholder'='请选择.']);更新非ActiveFomr生成的数据时,需要默认选择,容易处理,可以增值
使用kartik select2 Select2Echo select 2:小部件(['name'=' title ',' value'=2,' data'=$ data,' options'=['placeholder'='请选择.']);但是,如果您的表单是由ActiveForm生成的,但字段通常不是表字段,该怎么办?比较容易做到,以上面为例,你只需要指定$ model-title=['title 1 ',' title 2 '];就这么干吧
基本上就是这样,我们简单的实现了下拉选择和可搜索的功能。但是,为什么还有另一个但是呢?但就在刚才,我们以为,事实是这样的。我姐边肖说,能不能操作方便一点?一次选一个太麻烦了。可以选择多个吗?为了实现你的ZB技巧,嗯,这真的很简单,一行代码就解决了。
Echo $ form-field ($ model,' title ')-widget(selects 2:3360 class name(),['data'=$ data,' options'=['multiple'=true,' placeholder'='请选择.'],]);#为多个选择添加默认值。如上所述,添加了多个选项。非活动表单生成的表单操作一致。
让我们看看效果如何。
此时,我们已经可以唱NB的歌,高高兴兴回家了
等等,我好像忘了什么。有些眼尖的朋友可能已经注意到$data是我们提前准备好的所有数据。你说数据量大,不会死人。然后我们来看看如何实现异步搜索结果。比如我们现在需要查询一本书的书名,但是我们这本书的数据量在100W左右,非常简单,所以需要根据你的搜索结果异步获取下拉框中的数据。接下来,将在后面进行进一步的解释。
来吧,伙计们,让我们看看如何使用异步搜索功能。在工作中更有用,更方便,尤其是关联数据的时候。看看就知道了,而且极其好用。
基本用法就不多说了。请看到上面的官员在移动,我们将在这里继续谈论很多。
让我们首先预览异步搜索的呈现
注意哦,图中标记的部分是我们通过输入的关键词搜索出来的,异步这效果呢,我截图上来估计你也看不到效果,动图我还不会,不知道怎么搞的,要说具体是啥效果吗,相信大多数人也是明白滴,这就叫做只可意会,言谈不出来。好了,我们干脆直接上代码看具体操作吧。
//查看层使用kartik select2 Select2使用yii web JsExpression?php echo $form-field($model,' title ')-widget(选择2:类名(),[ 'options'=['placeholder'='请输入标题名称.'],' PlugInOptions '=[' placeholder '=' search . ',' allowClear'=true,' language '=['错误加载'=新的JsExpression(' function(){ return ' Waiting.} '),],' ajax'=[ 'url'='这里是提供数据源的接口,' dataType'='json ',' data '=new JSEXPRESSion(' function(params){ return { q : params。术语};}') ],'擒纵标记=new JsExpression(' function(标记){ return markup} '),' TemplateResult '=new JSEXPRESSion(' function(RES){ return RES . text;} '),' template selection '=new JSEXPRESSion(' function(RES){ return RES . text;}'), ], ]);上面的代码可直接复制使用,唯独需要修改的就是创建交互式、快速动态网页应用的网页开发技术里对应的全球资源定位器(统一资源定位符)地址。下面我们看看控制器层代码是怎么提供数据的。
//控制器层公共函数actionsearchtittle($ q){ yii : $ app-response-format= yii web response 3360: format _ JSON;$out=['results'=['id'=' ',' text '=' ']];if(!$ q){ return $ out;} $ data=article : find()-select(' id,标题为文本)-andFilterWhere(['like ',' title ',$ q])-limit(50)-asar ray()-all();$ out[' results ']=array _ values($ data);返回$ out}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。