2016-04-03 17 views
1

Arama kutusu için select2 çoklu kullanıyorum. Bu verileri JSON ile geçiriyorum ve ajax (JSON stringify) kullanarak kaydediyorum.Select2 JSON'a iletilecek çoklu biçim

Sadece 2 değişkeni geçmem gerekiyor, ID (birincil anahtar, özelleştirilmiş) ve Selection'ın kendisi.

Yalnızca 1 değer seçildiğinde veritabanına kaydetmeyi başardım. Birden çok değer seçerken

, benim console.log içinde, ben seçim kendisidir bu

{21,23,25,26} 

gibi bir şey görüyorum. İşte

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

2'yi Seç başlatma olduğu Aşağıda
Object0->{id:1, selection:21} 
Object1->{id:2, selection:23} 
Object2->{id:3, selection:25} 
Object3->{id:4, selection:26} 

kullanıyorum kodudur bunun böyle göstermek alırım Nasıl

,,

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 
     } 
    }) 

doğa (her ikisi de aşağıdaki gibi denedim) olarak tanımlanmıştır

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

Doğa.val() kullanımıyla ilgili bir şey olması gerektiğini biliyorum. Dizi gibi bir şey olmalı ama bu verileri anahtar /> değer çiftleri olarak nasıl ayırt edeceğimi/bölememeyi bilmiyorum.

Teşekkür ederiz.

cevap

1

Bunu geçen haftadan beri anladım ve çözümümü paylaşacağımı düşündüm.

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 
    }); 
}