Подтвердить что ты не робот

Select2 многозначное значение, отправляющее только одно значение в POST

Вот фрагмент моего кода: http://jsfiddle.net/natatkinson/xbWEb/

JavaScript:

$(document).ready(function () {
    $("#tags").select2({
        maximumSelectionSize: 3
    });

});

HTML:

<form name="form1" id="form1" action="" method="GET">
<fieldset>
    <legend>Shoe Info</legend>
    <dl>    <dt>Name:</dt>

        <dd>
            <input type="text" name="name" id="name" size="40" placeholder="Shoe name" required autofocus>
        </dd>
    </dl>   <dt>Tags:</dt>

    <dd>
        <select multiple="" name="tags" id="tags" style="width:100%;">
            <option value="0">Select Tags</option>
            <option value="2">racing flat</option>
            <option value="3">track spikes</option>
            <option value="1">trainer</option>
        </select>
    </dd>
    </dl>
</fieldset>
<p class="submit-buttons">
    <input type="submit" class="button1" name="submit" id="submit" value="Add Shoes" />
</p>

Все, что представляет, - это 1 значение, а не список, разделенный запятыми, как указано в документации.

4b9b3361

Ответ 1

Вы должны использовать [] для множественного значения, содержащего имя элемента управления. Исправьте использование внизу:

<select multiple="" name="tags[]" id="tags" style="width:100%;">

Ответ 2

Я думаю, что вы не можете напрямую получить строковые данные из select2, вы должны добавить скрытый ввод и отправить скрытое значение ввода в качестве параметра.

<input type="hidden" name="tags" id="tags"></input>
<select multiple="" style="width:100%;" onchange="changeSelect(event)">
  <option value="0">Select Tags</option>
  <option value="1">trainer</option>
</select>
function changeSelect(event){
  var select2Value = $(event.target).val();
  $("tags").val(select2Value);
}