ここに私のコードのスニペットがあります: 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つの値であり、ドキュメントにあるようなカンマ区切りのリストではありません。
フォームコントロールの名前に含まれる複数の値には[]を使用する必要があります。下部で使用して修正:
<select multiple="" name="tags[]" id="tags" style="width:100%;">
Select2から文字列データを直接取得することはできないと思います。隠し入力を追加し、隠し入力の値をparamとして送信する必要があります。
<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);
}