通过jquery将数据库中的列填充到select2中

Posted

技术标签:

【中文标题】通过jquery将数据库中的列填充到select2中【英文标题】:Populating a column from database into select2 via jquery 【发布时间】:2019-12-14 08:59:40 【问题描述】:

我正在尝试将标签从 DB 填充到 select2 字段中。数据以检查模式返回,但不填充到 select2 字段中。 我有一个带有 tag_id 和 tag_name 字段的tags 表。以下是控制器中获取并返回标签的代码:

    public function getTag()
      

     $tag_list = DB::table('tags')
     ->select('t_name')
     ->get();


            return response()->json(['tag_n' => $tag_list]);

以下是带回标签的Jquery:

<script>
    $(document).ready(function() 
  $("#catBox").select2(
       placeholder:"Select and search",
       ajax:


             url: urlTag ,
             type: 'GET' ,
             dataType: 'json',
             delay: 250,
             data:function(params)
                return
                    tag_n:params.term
                ;
             ,
             processResults:function(response)

                return
                    results: response
                ;
             ,

          cache:true
       
  );
);

</script>

路由和路由url:

    <script>
        var urlTag = ' route('getTag') ';
    </script>

Route::get('/gettag', [
    'uses' => 'PostController@getTag',
    'as' => 'getTag'
]);

在检查模式下返回数据,但不填充到 select2 字段中。

以下是Select标签:

                   <select class="js-example-basic-multiple" multiple="multiple" name="catBox[]" id="catBox" style ="width:250px">

                    </select>   

【问题讨论】:

我认为它的数据解析问题。你试过了吗? 【参考方案1】:

像这样从服务器返回数据:

[t_name : "php",t_name : "TEST",t_name : "DEMO"] insted of pass with `a_tag : [t_name : "PHP",t_name : "TEST",t_name : "DEMO"]`





$("#catBox").select2(
      tags: true,
      tokenSeparators: [",", " "],
      createSearchChoice: function(term, data) 
        if ($(data).filter(function() 
          return this.text.localeCompare(term) === 0;
        ).length === 0) 
          return 
            t_name: term
          ;
        
      ,
      multiple: true,
      ajax: 
        url: urlTag ,
        dataType: "json",
        data: function(term, page) 
          return 
            q: term
          ;
        ,
        results: function(data, page) 
          return 
            results: data
          ;
        
      
    );

【讨论】:

类似***.com/questions/14229768/… 我正在尝试按照您上面提到的方式从服务器返回数据。我应该在 return 语句中更改什么才能像这样返回它? 在尝试上面的 Jquery 代码时,我收到(urlTag 未定义) urlTag 是保存你的 api url 的 var 我修复了 URL 以及返回的格式,但 select2 字段中仍然没有显示任何内容。我还在主要问题中添加了 select2 html

以上是关于通过jquery将数据库中的列填充到select2中的主要内容,如果未能解决你的问题,请参考以下文章

无法获取数组结果以填充 jquery select2

从 MVC 4 的数据库中填充 Select2 下拉框

javascript 将Json填充到Select2

Select2动态数据设置

如何将 jquery 中的值插入剔除数据绑定行?

通过 javascript/jquery 关闭 select2 下拉菜单