亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel框架select2多選插件如何初始化默認選中項

發布時間:2021-08-25 09:24:01 來源:億速云 閱讀:141 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關laravel框架select2多選插件如何初始化默認選中項,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

具體如下:

項目中有發送消息功能,需要能通過搜索,多選用戶,來指定發送人。使用 select2 插件來完成。

select2 的 html 代碼如下:

<div class="form-group" id="member_group">
  <label class="col-lg-3 control-label required">選擇用戶
  <span class="required">*</span>
  </label>
  <div class="col-lg-4">
  <select class="form-control" name="user_id[]" id="member_select" multiple="multiple"></select>
  </div>
</div>

select2 的 js 代碼如下:

//選擇用戶
$("#member_select").select2({
  ajax: {
    //請求的URL
    url: "{{ route('member.index') }}",
    //返回的數據類型
    dataType: "json",
    //延遲時間,毫秒
    delay: 500,
    //是否緩存
    cache: true,
    //查詢數據
    data: function (params) {
      //params.term就是你搜索輸入的參數
      return {
        search: params.term,
        page: params.page || 1
      };
    },
    //請求結果回調函數,data就是后端返回的數據
    processResults: function (data, params) {
      var data = data.data;
      var results = [];
      //循環數據,將數據壓入results中
      //注意數據必須要有二個屬性,id和text,分別對應option的value和文本
      //網上有些說無法選中元素,請先檢查這里,你是否設置了id,并且不為空
      $(data.data).each(function (i, obj) {
        results.push({
          id: obj.id,
          text: obj.name
        });
      });
      return {
        results: results,
        pagination: {
          more: (data.current_page * data.per_page) < data.total
        }
      };
    }
  },
  placeholder: '選擇用戶',
  //是否多選
  multiple: true,
  allowClear: true
});

后端返回的數據如下,直接使用 laravel 的 paginate() 方法 返回分頁數據。

{
  "status_code":200,
  "message":"查詢成功",
  "data":{
    "current_page":1,
    "data":[
      {
        "id":2006,
        "name":"用戶1"
      },
      {
        "id":2005,
        "name":"用戶3"
      },
      {
        "id":2004,
        "name":"用戶3"
      }
    ],
    "first_page_url":"http://test.me/member/index?page=1",
    "from":1,
    "last_page":1,
    "last_page_url":"http://test.me/member/index?page=1",
    "next_page_url":"http://test.me/member/index?page=1",
    "path":"http://test.me/member/index",
    "per_page":1,
    "prev_page_url":null,
    "to":null,
    "total":3
  }
}

在編輯消息時,我們需要查看,這條消息發送給了哪些人,這就需要進入編輯頁面時,讓 select2 默認選中用戶。

網上說通過如下方法可以選中。

$("#spread_select").val([1, 2]).trigger("change");

但是我們這里select2的option是通過ajax動態加載的,剛進頁面時,select2的ajax根本沒有觸發,導致select2中沒有option元素,更無法被選中。

我們通過下面的方式,來實現默認選中。

var selObj = [
  {"id": 1, "name": "小徐"},
  {"id": 2, "name": "小張"},
  {"id": 3, "name": "小明"},
];
(function initSel(selObj) {
  if (selObj) {
    for (var ix = 0; ix < selObj.length; ix++) {
      var item = selObj[ix];
      var option = new Option(item.name, item.id, true, true);
      $("#member_select").append(option);
    }
    $("#member_select").trigger('change');
  }
})(selObj);

selObj中的數據,可以通過PHP后端生成好后,渲染到頁面,然后通過JSON.parse()解析成JSON對象。

關于“laravel框架select2多選插件如何初始化默認選中項”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝南县| 山东| 吴川市| 淳安县| 嘉善县| 通山县| 泸定县| 新化县| 汉中市| 福鼎市| 新沂市| 开平市| 曲麻莱县| 剑阁县| 博野县| 凤庆县| 中牟县| 滦南县| 谢通门县| 定远县| 定日县| 满洲里市| 大埔县| 沁源县| 秦皇岛市| 会昌县| 乳山市| 宜良县| 佛冈县| 岳西县| 林口县| 高碑店市| 肃宁县| 左贡县| 呈贡县| 德格县| 汤阴县| 通道| 青神县| 太仆寺旗| 麻栗坡县|