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

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

所以一旦选择了一些标签,我想以数组的形式检索它们,并在 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[]

标签: jquery laravel-5 jquery-select2


【解决方案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 @
猜你喜欢
  • 1970-01-01
  • 2014-06-22
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 2020-04-11
相关资源
最近更新 更多