[OK]を、私はここに狂っているように感じる。私はselect2 jqueryプラグイン(バージョン4)を使用していて、ajax経由でデータを取得しています。だからあなたは名前を入力することができ、それはその連絡先情報を返します。しかし、私はまた、連絡先がどの組織であるかを返すことも望みます。ここで Select2 - ajaxコール経由で追加データを返信する
は私SELECT2の初期化です:$('#contact_id').select2({
ajax: {
url: 'example.com/contacts/select',
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term,
page: params.page
};
},
processResults: function (data) {
return {
results: data
};
},
cache: true
},
minimumInputLength: 3,
maximumSelectionLength: 1
});
そして、ここで私は戻っていたデータ(laravelフレームワーク)である:
foreach($contacts as $con) {
$results[] = [
'id' => $con->contact_id,
'text' => $con->full_name,
'org' => [
'org_id' => $con->organization_id,
'org_name' => $con->org_name
]
];
}
return response()->json($results);
がそうではない '組織は' 末端に結合されることになって作成されたオプションかselect2でselect要素を選択しますか?だから私は$('#contact_id').select2().find(':selected').data('data').org
または$('#contact_id').select2().data('data').org
のような何かをすることができますか?私はこれが最後の週に働い確認し、今では完全にその組織の特性を無視しています誓う
<select>
<option value="43" data-org="{org_id:377, org_name:'Galactic Empire'}">Darth Vader</option>
</select>
:
理想的に、これは次のようになります。私は、返されるjsonデータに適切なorg_idとorg_nameを持つorgが含まれていることを確認しました。
IDとテキストプロパティは、各オブジェクトに必要とされており、これらは、Selectセレクトは、内部データオブジェクトのために使用するプロパティです:私はdocumentationの、オンラインのみこのスニペットを何かを掘ることができていません。データオブジェクトと共に渡された追加のパラメータは、Select2が公開するデータオブジェクトに含まれます。
だから誰でも私を助けることができますか?私はすでにこれに数時間を費やしてしまった。
EDIT:私はどんな反応をもらっていないので、私の現在の計画は、私は私のコードでは、後に参照する非表示の入力フィールドまたはJSONブロックを起動するprocessResults
コールバックを使用することです。状況を考えれば、これはハックな解決策だと思うが、それ以外の方法がなければ、それは私がやることだ。私はむしろその組織を得るために別のアヤックスコールを行うよりもそうしたいと思う。私がそれを実装するのを手伝ったら、私は解決策を投稿します。
追加データ(V4.0)を含む:データの読み込み
processResults: function (data) {
data = data.map(function (item) {
return {
id: item.id_field,
text: item.text_field,
otherfield: item.otherfield
};
});
return { results: data };
}
:
こんにちは、私は今同じ問題に直面しています。理想的には、データ属性を使用して追加のデータ(IDとテキストだけでなく)を渡す必要があります。あなたは問題を解決しましたか? – slick
これには実際の解決策がありますか? –
私のソリューションを追加しました。 –