formatresultはうまくいきませんでした! しかし、は、HTML で生成されたデータ フォーム PHP (ajax コンテンツではない) でこのようにうまく機能します。
これが私のための作業コードです。パイプ文字で列を区切ります(2つ以上の列を持つことができます):
html (PHP から) :
<option value="...">
column 1 text | column 2 text
</option>
ジャバスクリプト(jQuery):
$('#selectSubstance').select2({
templateResult: function(data) {
var r = data.text.split('|');
var $result = $(
'<div class="row">' +
'<div class="col-md-3">' + r[0] + '</div>' +
'<div class="col-md-9">' + r[1] + '</div>' +
'</div>'
);
return $result;
}
});
編集 2021-06-28
選択した項目 (閉じた選択) に同じビジュアルが必要な場合は、同じ構文を次のように使用します。templateSelection:
例えば :
$('#selectProduct').select2({
placeholder: 'Choose a product.',
templateResult: function(data) {
var r = data.text.split('| ');
var result = jQuery(
'<div class="row">' +
'<div class="col-md-3">' + r[0] + '</div>' +
'<div class="col-md-9">' + r[1] + '</div>' +
'</div>'
);
return result;
},
templateSelection: function(data) {
var r = data.text.split('| ');
var result = jQuery(
'<div class="row">' +
'<div class="col-md-3">' + r[0] + '</div>' +
'<div class="col-md-9">' + r[1] + '</div>' +
'</div>'
);
return result;
}
});