我正在使用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->值对。
谢谢。
答案 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
});
}