Select2要传递给JSON的多种格式

时间:2016-04-03 13:51:04

标签: javascript jquery json jquery-select2 select2

我正在使用select2 multiple搜索框。我使用JSON传递这些数据并使用ajax(JSON stringify)保存它。

我只需要传递2个变量,即ID(主键,自定义)和Selection本身。

当只选择了1个值时,我设法将它保存到数据库中。

选择多个值时,在我的console.log中,我看到类似这样的内容

{21,23,25,26}

这是选择本身。

如何让它显示如下,

Object0->{id:1, selection:21}
Object1->{id:2, selection:23}
Object2->{id:3, selection:25}
Object3->{id:4, selection:26}

以下是我正在使用的代码,

var nature = {
   ubtBusinessInfo: businessId, // the primary key
   ubtBusinessListing: nature.val() // here is selection
};

这是select2的初始化,

    nature
    .select2({
        allowClear: true,
        placeholder: "Filter as you type",
        minimumInputLength: 3,
        multiple: true,
        ajax: {
            url: 'home/umkei/info/nature',
            dataType: 'json',
            quietMillis: 250,
            data: function (term, page) {
                return { q: term };
            },
            results: function (data, page) {
                return { results: data };
            },
            cache: true
        }
    })

自然定义自(我试过以下两个)

var nature = $('[name=nature_business]') OR var nature = $(#nature_business);

我知道它必须与nature.val()用法有关。必须是类似数组的东西,但我不知道如何将这些数据区分/拆分为key->值对。

谢谢。

1 个答案:

答案 0 :(得分:1)

我上周得到了这个,并认为我会分享我的解决方案。

var nature=[];
var splitnature = nature_business.val().trim().split(',');
var n;

for(n=0; n<=splitnature.length-1;n++){
    nature.push({
    ubtBusinessListing: splitnature[n],
    ubtBusinessInfo: businessId
    });
}