最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

yii2組件之下拉框帶搜索功能的示例代碼(yii-select2)

 更新時間:2017年09月08日 09:48:24   作者:白狼  
本篇文章主要介紹了yii2組件之下拉框帶搜索功能的示例代碼(yii-select2),具有一定的參考價值,有興趣的可以了解一下

簡單的小功能,但是用起來還是蠻爽的。分享出來讓更多的人有更快的開發(fā)效率,開開心心快樂編程。

如果你還沒有使用過composer,你可就out了,看我的教程分享,composer簡直就是必備神奇有木有。都說到這個點上了,我們趕緊使用composer進行安裝吧。

不急,先來看看效果圖是啥樣的,不然都沒心情沒欲望看下去。

啥玩意,不感興趣?繼續(xù)看嘛,看完再操作一邊才能覺得好在哪里。

有木有感覺很帥氣,當然啦,遠遠不止,還很上檔次用起來效果也是杠杠的有木有。

好了好了,抓緊時間安裝,不然聊起來真是沒完沒了。

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

特別說明,因為這里安裝的dev版本,也就是開發(fā)版本,不穩(wěn)定版本,如果你的項目是git托管的,composer安裝下來之后這里記得刪掉 \vendor\kartik-v\yii2-widget-select2目錄下的.git文件,不然你提交不上去的哦
等他個大概5分鐘的樣子差不多了,安裝就好了,然后我們就可以像下面一樣開始使用了

//如果你的表單是ActiveForm,請使用

use kartik\select2\Select2; 
//$data是鍵值對數(shù)組哦,key-value ,下面所聲明的所有$data均為鍵值對數(shù)組,以該數(shù)組為例 
$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生成的更新數(shù)據(jù)的時候就需要默認選中,好辦,加value值即可

use kartik\select2\Select2; 
echo Select2::widget([ 
  'name' => 'title', 
  'value' => 2, 
  'data' => $data, 
  'options' => ['placeholder' => '請選擇...'] 
]);

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

基本上就是這么回事,我們也就很簡單的實現(xiàn)了下拉選擇并可搜索的功能。但是,咋又冒出來了個但是呢,但是剛才是我們想的,事實是這樣的,小編妹子說了,你這能不能操作再方便點,一次選擇一個太麻煩了,能不能多選呀?為了實現(xiàn)你那ZB的伎倆,好吧,確實也簡單,一行代碼解決掉。

echo $form->field($model, 'title')->widget(Select2::classname(), [ 
  'data' => $data, 
  'options' => ['multiple' => true, 'placeholder' => '請選擇 ...'], 
]);
#多選的添加默認值同上

眼尖的注意到了,加了一個multiple選項。非ActiveForm生成的表單操作一致。

我們看看效果是怎么樣的。

到此,我們已經(jīng)可以唱者NB的歌歡快的回家了

等等,好像忘記什么了,有眼尖的小伙伴可能注意到了,$data都是我們預(yù)先準備好的數(shù)據(jù),你說這數(shù)據(jù)量萬一很大的情況,不搞死人了嘛,那接下來讓我們看看如何實現(xiàn)異步搜索結(jié)果。舉一個例子,我們現(xiàn)在要查詢某一個書名,但是我們的書的數(shù)據(jù)量大概有100W,很簡單,這需要我們根據(jù)你的搜索結(jié)果異步獲取下拉框里面的數(shù)據(jù)。未完待續(xù),晚點做進一步說明。

來,上家伙,我們來看看如何使用異步搜索功能,工作中尤其是進行關(guān)聯(lián)數(shù)據(jù)的時候其用途更是大大的,方便性嘛,看看就知道了,好用的不得了。

基本的使用方法就不多說了,請看官們移步上文,我們這里繼續(xù)接著大侃大論。

我們先來預(yù)覽下異步搜索的效果圖

注意哦,圖中標記的部分是我們通過輸入的關(guān)鍵詞搜索出來的,異步這效果呢,我截圖上來估計你也看不到效果,動圖我還不會,不知道怎么搞的,要說具體是啥效果嗎,相信大多數(shù)人也是明白滴,這就叫做只可意會,言談不出來。好了,我們干脆直接上代碼看具體操作吧。

// view層
use kartik\select2\Select2;
use yii\web\JsExpression;

<?php
  echo $form->field($model, 'title')->widget(Select2::classname(), [
    'options' => ['placeholder' => '請輸入標題名稱 ...'],
    'pluginOptions' => [
      'placeholder' => 'search ...',
      'allowClear' => true,
      'language' => [
        'errorLoading' => new JsExpression("function () { return 'Waiting...'; }"),
      ],
      'ajax' => [
        'url' => '這里是提供數(shù)據(jù)源的接口',
        'dataType' => 'json',
        'data' => new JsExpression('function(params) { return {q:params.term}; }')
      ],
      'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
      'templateResult' => new JsExpression('function(res) { return res.text; }'),
      'templateSelection' => new JsExpression('function (res) { return res.text; }'),
    ],
  ]);
?>

上面的代碼可直接復(fù)制使用,唯獨需要修改的就是ajax里對應(yīng)的url地址。下面我們看看controller層代碼是怎么提供數(shù)據(jù)的。

//controller層
public function actionSearchTitle ($q)
{
  \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
  $out = ['results' => ['id' => '', 'text' => '']];
  if (!$q) {
    return $out;
  }

  $data = Article::find()
        ->select('id, title as text')
        ->andFilterWhere(['like', 'title', $q])
        ->limit(50)
        ->asArray()
        ->all();
        
  $out['results'] = array_values($data);

  return $out;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Yii2框架視圖(View)操作及Layout的使用方法分析

    Yii2框架視圖(View)操作及Layout的使用方法分析

    這篇文章主要介紹了Yii2框架視圖(View)操作及Layout的使用方法,結(jié)合具體實例形式分析了Yii2框架視圖操作及布局layout相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • PHP基于ip2long實現(xiàn)IP轉(zhuǎn)換整形

    PHP基于ip2long實現(xiàn)IP轉(zhuǎn)換整形

    這篇文章主要介紹了PHP基于ip2long實現(xiàn)IP轉(zhuǎn)換整形,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • PHP 讀取文本文件內(nèi)容并分頁顯示

    PHP 讀取文本文件內(nèi)容并分頁顯示

    本文給大家分享的代碼非常簡單實用,使用php實現(xiàn)讀取文本文件內(nèi)容,并且分頁展示出來,有類似需求的小伙伴可以來參考下。
    2016-01-01
  • PHP中的流(streams)淺析

    PHP中的流(streams)淺析

    這篇文章主要介紹了PHP中的流(streams)淺析,本文講解了流的概述 、流基礎(chǔ)知識、php://包裝器、流上下文(Stream Contexts)等內(nèi)容,需要的朋友可以參考下
    2015-07-07
  • PHP文章采集URL補全函數(shù)(FormatUrl)

    PHP文章采集URL補全函數(shù)(FormatUrl)

    寫此函數(shù)作用就是為了開發(fā)采集程序,采集文章的時候會經(jīng)常遇到頁面里的路徑是 相對路徑 或者 絕對根路徑 不是 絕對全路徑 就無法收集URL
    2012-08-08
  • dvwa+xampp搭建顯示亂碼的問題及解決方案

    dvwa+xampp搭建顯示亂碼的問題及解決方案

    XAMPP是完全免費且易于安裝的Apache發(fā)行版本,本文給大家介紹dvwa+xampp搭建顯示亂碼的問題及解決方案,需要的朋友可以參考下
    2015-08-08
  • CI框架數(shù)據(jù)庫查詢緩存優(yōu)化的方法

    CI框架數(shù)據(jù)庫查詢緩存優(yōu)化的方法

    這篇文章主要介紹了CI框架數(shù)據(jù)庫查詢緩存優(yōu)化的方法,結(jié)合實例形式較為詳細的分析了CI框架中緩存的開啟、關(guān)閉、使用、清空等相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2016-11-11
  • Symfony2使用第三方庫Upload制作圖片上傳實例詳解

    Symfony2使用第三方庫Upload制作圖片上傳實例詳解

    這篇文章主要介紹了Symfony2使用第三方庫Upload制作圖片上傳的方法,結(jié)合實例形式較為詳細的分析了Symfony2使用第三方庫Upload的具體步驟與相關(guān)使用技巧,需要的朋友可以參考下
    2016-02-02
  • laravel 數(shù)據(jù)遷移與 Eloquent ORM的實現(xiàn)方法

    laravel 數(shù)據(jù)遷移與 Eloquent ORM的實現(xiàn)方法

    laravel 提供了很實用的 Eloquent ORM 模型類,簡單、直觀的與數(shù)據(jù)庫進行交互。同時使用數(shù)據(jù)遷移管理數(shù)據(jù)庫,可以與團隊進行共享以及編輯,本文詳細的介紹了laravel 數(shù)據(jù)遷移與 Eloquent ORM的實現(xiàn)方法,感興趣的可以了解一下
    2019-04-04
  • 詳解php幾行代碼實現(xiàn)CSV格式文件輸出

    詳解php幾行代碼實現(xiàn)CSV格式文件輸出

    本篇文章主要介紹了詳解php幾行代碼實現(xiàn)CSV格式文件輸出,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論

浏阳市| 乐亭县| 资兴市| 连山| 深圳市| 沁阳市| 介休市| 云阳县| 清河县| 静海县| 泸溪县| 凤山市| 湖州市| 凯里市| 怀仁县| 偃师市| 越西县| 塔城市| 大安市| 浦城县| 孝昌县| 大悟县| 辽源市| 砀山县| 广德县| 栾川县| 武邑县| 双牌县| 龙川县| 汉寿县| 蓝山县| 繁峙县| 洞口县| 定陶县| 贵溪市| 南昌市| 公安县| 集贤县| 肇州县| 梁平县| 土默特右旗|