如何检索存储在 select2 下拉列表中的数据?

Posted

技术标签:

【中文标题】如何检索存储在 select2 下拉列表中的数据?【英文标题】:How to retrieve data stored in select2 dropdown? 【发布时间】:2018-06-11 11:46:12 【问题描述】:

我正在使用laravel 5 和select2 下拉菜单来选择类似于*** 标签字段的各种标签。

所以一旦选择了一些标签,我想以数组的形式检索它们,并在 laravel 5 的控制器中使用它来验证和存储。

此外,如果用户点击编辑帖子,我想从database 的下拉列表中添加所有标签,以便用户轻松进行更改。

1) 所以我主要想知道如何从select2以数组的形式检索数据

2) 当用户点击编辑时,用数据填充select2 我如何实现这两个功能?

<select multiple="multiple"
    id="tag_select"
    class="form-control $errors->has('tag_select') ? ' is-invalid' : '' "
    name="tag_select"
    value=" old('tag_select') "
    required
    >

    <option value="">php</option>
    <option value="">C++</option>
</select>

<script>
    $( document ).ready(function() 

        $("#tag_select").select2();

        $('#show_select').click(function()
            $("#tag_select").text();
        );
    );
</script>

【问题讨论】:

添加与此相关的代码,以便更容易提供帮助。 请先在此处添加一些代码,然后寻求帮助。 添加代码请立即查看 是时候收回你的反对票了! [at]AnkitAgarwal @DhavalPurohit 是的,您将在控制器中获得阵列。如果您使用多选,则名称应作为 ex 的数组给出。 tag_select[] 【参考方案1】:

你可以通过select2:select事件选中tags

$("#class_select").select2();

var tagsArray = new Array();

$('#class_select').on('select2:select', function(e) 
  var text = e.params.data.text; // get text
  var id = e.params.data.id; // get value

  tagsArray.push(text);
  console.log(tagsArray);
);
select#class_select 
  width: 200px;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.full.min.js"></script>

<select multiple="multiple" id="class_select" class="form-control" name="tag_select" required>
    <option value="1">PHP</option>
    <option value="2">C++</option>
</select>

也可以被原生html选中:

$("#class_select").select2();

var tagsArray = new Array();

$('#class_select').on('change', function() 
  var val = $(this).val();
  tagsArray.push(val);
  console.log(tagsArray);
);
select#class_select 
  width: 200px;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.full.min.js"></script>

<select multiple="multiple" id="class_select" class="form-control" name="tag_select[]" required>
    <option value="1">PHP</option>
    <option value="2">C++</option>
</select>

【讨论】:

还有一个问题,当我提交表单时,如何访问 laravel 控制器中的 tagsArray? 不幸的是,我不是laravel 专家,但在php 中,您可以使用jsonajax @Raj 获得js 数组,但您可以搜索:@987654335 @

以上是关于如何检索存储在 select2 下拉列表中的数据?的主要内容,如果未能解决你的问题,请参考以下文章

jquery Select2 Ajax - 如何设置值(initSelection)

如何获取 Select2 下拉列表中的所有值?

如何使用 select2 插件隐藏下拉列表中的选项?

动态填充 select2 下拉列表

如何将模型数据加载到在 Yii 中使用 Ajax 过滤的 Select2 下拉列表

如何在 asp.net 中使用 select2 返回下拉列表的值?