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

好吧,我觉得我在这里疯了.我正在使用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附加到创建的选项或select元素?所以我可以做一些像$(‘#contact_id’).select2().find(‘:selected’).data(‘data’).org或$(‘#contact_id’).select2().data(‘数据’)..org或类似的东西?

理想情况下,这看起来像:

<select>
    <option value="43" data-org="{org_id:377,org_name:'Galactic Empire'}">Darth Vader</option>
</select>

我发誓我上周确认这个工作,但现在它完全无视那个组织财产.我已经确认返回的json数据确实包含org和正确的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块,我稍后将在我的代码中引用.考虑到这种情况,我觉得这是一个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);

相关文章

JS原生Ajax操作(XMLHttpRequest) GET请求 POST请求 兼容性问题 利用iframe模拟ajax 实现表单提交的返回...
AJAX 每日更新前端基础,如果觉得不错,点个star吧 &#128515; https://github.com/WindrunnerMax/E...
踩坑Axios提交form表单几种格式 前后端分离的开发前后端, 前端使用的vue,后端的安全模块使用的SpringSe...
很早就听闻ajax的名声,但是却一直不知道怎么用,今天自己捣鼓了一下,竟然会用了,哈哈哈哈。 为了防止...
需要在服务器上进行哈 jquery的ajax方法: // jquery请求 $.ajax({ url: &quot;./server/slider.js...
Ajax函数封装ajax.js // Get / Post // 参数 get post // 是否异步 // 如何处理响应数据 // URL // var...