2013-06-16 21 views
7

Sonuçları AJAX kullanarak Select2'de görünmesini sağlamakta sorun yaşıyorum. Javascript ConsoleSelect2: Sonuçlar AJAX kullanarak gösterilmiyor

[

{ "metin": Ben isteği beklenen JSON döndüren bakın JavaScript Konsolu kullanarak

$(document).ready(function() { 
    $("#producto").select2({ 
     placeholder: 'Select a product', 
     formatResult: productFormatResult, 
     formatSelection: productFormatSelection, 
     dropdownClass: 'bigdrop', 
     escapeMarkup: function(m) { return m; }, 
     minimumInputLength:3, 
     ajax: { 
      url: 'http://foo.foo/listar.json', 
      dataType: 'jsonp', 
      data: function(term, page) { 
       return { 
        q: term 
       }; 
      }, 
      results: function(data, page) { 
       return {results:data}; 
      } 
     } 
    }); 


function productFormatResult(product) { 
    var html = "<table class='product-resultado'><tr>"; 
    if(product.img != undefined) { 
     html += "<td class='product-image'><img src='"+product.img+"'/></td>"; 
    } 
    html += "<td class='product-info'>"; 
    html += product.text + "<br />"; 
    html += product.precio_costo + " CRC <br />"; 
    html += "Existencias: " + product.existencias; 
    html += "</td></tr></table>"; 
    return html; 
} 

function productFormatSelection(product) { 
    return product.text; 
} 

: İşte benim kodudur "Foo Ürünü", "img": "#", "precio_costo": 45, "existencias" 0 "kimlik": 2}

]

Sonuçların olduğuna inanıyorum: function(data, page) { ... } çağrılmıyor çünkü orada bir uyarı verdim ve hiçbir şey olmadı.

Sadece sonuçlarını beklerken orada asılı: Hangs waiting for results

cevap

11

görüyoruz.

Daha önce aynı şeyi yaşadım. json sonucu bu ölçütlere göre dışarı elenir, beklenen JSON aslında döndürülür bile çok büyük olasılıkla json ve iki farklı biçimlerde

olarak jsonp görülür çünkü

Not: Bu daha bir yorumun gibidir, ancak ben can beri' Soruya yorum yap, lütfen bana eşlik et

+0

Thanx. Bugün hayatımı kurtardın .... – Haritha

+0

Rica ederim;) –

0

Sana bir değer formu ajax arama döndüremez düşünüyorum ajax çağrısı asynchronous olduğundan.. Bunun yerine sonuçları orada halleder. veya aşağıdaki bağlantıda belirtildiği gibi callback functions kullanın.

yüzden dataType: 'jsonp' dataType: 'json', hatta tüm çizgi kaldırarak hattı değiştirmeyi deneyin, ben yerine JSONP ait json dönen tahmin jQuery: Return data after ajax call success

+1

Bu basit bir Ajax çağrısı değil, bir eklenti. Ya da "veri" ve "sonuçların" geri dönüşlerinin nasıl çalıştığını biliyor musunuz? –

+0

Evet, "Bu nesne ajax isteklerini gerçekleştiren bir işlevi el ile yazmak zorunda kaldığım için kısayol görevi görür. Yerleşik işlev, sıralı yanıtları azaltma ve düşürme gibi daha gelişmiş özellikleri destekler." - http://ivaynberg.github.io/select2/ – blaze

+0

@Felix Kling Ya bir işlev işaretçisini geçirme gibi geri aramaların nasıl çalıştığını biliyorum, böylece işlev işaretçi tarafından çağrılacak. Ayrıca, ajax çağrısının eşzamansız olduğunu ve bir değer döndüremediğini biliyorum. Ve ajax kavramı her yerde aynı olduğu için OP'nin orada kaldığını düşündüm, bu yüzden bir öneride bulundu. Yani, cevaben 'Ben' düşünüyorum. Itiraf etmek - o nerede çalıştığını tam senaryo bilmiyorum. –