Select2 - 多个标签不起作用
Select2 - Multiple tags not working
我正在尝试使用 Select2 (https://select2.github.io) 允许用户在提交表单之前在字段中键入多个标签。在我的 Laravel PHP 应用程序中,我将获取这些标签,确定它们是否存在并将它们添加到数据库中。
我的问题是我似乎无法让 Select2 识别用户输入的多个标签。当我查询表单数据时,我只看到用户输入的最后一个标签,而不是所有标签。
我的 Select2 元素是:
<select class="tags-field" name="tags" data-tags="true" data-placeholder="TAGS" multiple="multiple">
</select>
我的 JQuery 是:
$(function() {
$(".tags-field").select2({
maximumSelectionLength: 3,
tokenSeparators: [','],
});
}
没有 Javascript 错误,它工作得很好,只是我无法检测到所有标签。
要使 PHP 将所有 selected 选项作为数组提供,请在您的 select 名称后加上一对方括号,如下所示:
<select class="tags-field" name="tags[]" data-tags="true" data-placeholder="TAGS" multiple="multiple">
如果将此表单发送到 PHP 程序,$_POST['tags'] 的值将是一个数组。请注意,表单控件名称中的方括号不是数组键的一部分。您将像这样处理这样的表格:
<?php
$tags = $_POST['tags'];
// Note that $tags will be an array.
foreach ($tags as $t) {
echo "$t<br />";
}
?>
- 使用隐藏的输入字段来发送所有值
- 使用onsubmit事件设置隐藏字段的值
HTML:
<form method="post" action="post.php">
<select multiple id="e1" style="width:300px" name="_state">
<option value="AL">Alabama</option>
<option value="Am">Amalapuram</option>
<option value="An">Anakapalli</option>
<option value="Ak">Akkayapalem</option>
<option value="WY">Wyoming</option>
</select>
<input type="hidden" name="state" value="" />
<input type="submit"/>
</form>
JQ:
$("#e1").select2();
$('form').submit(function () {
var newvalue = '';
var value = $('select[name="_state"]').val();
if (value) {
newvalue = value;
}
$('input[name="state"]').val(newvalue);
})
我正在尝试使用 Select2 (https://select2.github.io) 允许用户在提交表单之前在字段中键入多个标签。在我的 Laravel PHP 应用程序中,我将获取这些标签,确定它们是否存在并将它们添加到数据库中。
我的问题是我似乎无法让 Select2 识别用户输入的多个标签。当我查询表单数据时,我只看到用户输入的最后一个标签,而不是所有标签。
我的 Select2 元素是:
<select class="tags-field" name="tags" data-tags="true" data-placeholder="TAGS" multiple="multiple">
</select>
我的 JQuery 是:
$(function() {
$(".tags-field").select2({
maximumSelectionLength: 3,
tokenSeparators: [','],
});
}
没有 Javascript 错误,它工作得很好,只是我无法检测到所有标签。
要使 PHP 将所有 selected 选项作为数组提供,请在您的 select 名称后加上一对方括号,如下所示:
<select class="tags-field" name="tags[]" data-tags="true" data-placeholder="TAGS" multiple="multiple">
如果将此表单发送到 PHP 程序,$_POST['tags'] 的值将是一个数组。请注意,表单控件名称中的方括号不是数组键的一部分。您将像这样处理这样的表格:
<?php
$tags = $_POST['tags'];
// Note that $tags will be an array.
foreach ($tags as $t) {
echo "$t<br />";
}
?>
- 使用隐藏的输入字段来发送所有值
- 使用onsubmit事件设置隐藏字段的值
HTML:
<form method="post" action="post.php">
<select multiple id="e1" style="width:300px" name="_state">
<option value="AL">Alabama</option>
<option value="Am">Amalapuram</option>
<option value="An">Anakapalli</option>
<option value="Ak">Akkayapalem</option>
<option value="WY">Wyoming</option>
</select>
<input type="hidden" name="state" value="" />
<input type="submit"/>
</form>
JQ:
$("#e1").select2();
$('form').submit(function () {
var newvalue = '';
var value = $('select[name="_state"]').val();
if (value) {
newvalue = value;
}
$('input[name="state"]').val(newvalue);
})