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

标签 php jquery laravel jquery-select2

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

    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>

路线和路线网址:

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

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

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

enter image description here

以下是选择标签:

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

                    </select>   

最佳答案

从服务器返回数据,如下所示:

[{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
          };
        }
      }
    });

关于php - 通过jquery将数据库中的列填充到select2中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57382269/

相关文章:

javascript - 如何在不向上滚动的情况下在视口(viewport)中显示文本?

php - 在 PHP 中捕获方括号之间的文本

laravel - 是否可以在Laravel Passport中禁用路线?

php - laravel php artisan 迁移

php - 任何 'other' 使用 PHP 求和变量的方法?

php - mysql join 未正确执行

javascript - 显示图标的日期选择器单击并用所选日期填充文本框

javascript - $.fn setInterval 对具有不同计数值的多个元素

javascript - 我怎样才能用jquery控制我的Json?

mysql - 动态行未使用 Laravel Controller 保存在数据库中