gpt4 book ai didi

javascript - Select2 - 通过 ajax 调用传回附加数据

转载 作者:数据小太阳 更新时间:2023-10-29 04:08:52 25 4
gpt4 key购买 nike

好吧,我觉得我要疯了。我正在使用 select2 jquery 插件(版本 4),并通过 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);

那么“org”不应该附加到创建的选项或 select2 的选择元素吗?所以我可以做类似 $('#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 的组织。我无法在网上挖掘任何东西,只有 documentation 的这个片段:

The id and text properties are required on each object, and these are the properties that Select2 uses for the internal data objects. Any additional paramters passed in with data objects will be included on the data objects that Select2 exposes.

所以有人可以帮我解决这个问题吗?我已经在这上面浪费了几个小时。

编辑:由于我没有收到任何回复,我目前的计划是使用 processResults 回调来生成隐藏的输入字段或 JSON block ,我稍后会引用它们在我的代码中。鉴于这种情况,我觉得这是一个 hacky 解决方案,但如果没有其他办法,那就是我会做的。我宁愿这样做也不愿再进行一次 ajax 调用来获取组织。当我着手实现它时,我会发布我的解决方案。

最佳答案

暂时无法发表评论(低信誉)..所以...回答光滑:

包括附加数据 (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 };
}

读取数据:

var data=$('#contact_id').select2('data')[0];
console.log(data.otherfield);

关于javascript - Select2 - 通过 ajax 调用传回附加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com