SORU
22 ŞUBAT 2011, Salı


İstek/sunucu yanıtı otomatik tamamlama neye benziyor?

Bu bir kara delik gibi görünüyor: jQuery UI web sitesi arama, Yığın Taşması, ve Google'da bir saat Sonra, henüz yazmayı en temel bilgi bulamadımsunucu tarafıotomatik tamamlama.

Ne parametre sunucuya geçirilir ve JSON yanıt ne olmalıdır?

Ben bir şey eksik olmalı, çünkü herkes bunu yapmak için nasıl öğrendin? Siteleri tek tarafı istemci JavaScript kodu ve protokol veya sunucu tarafı örnekler asla tartışmak gibi görünüyor.

Yeterli çalışma basit uzaktan örnek almam lazım.

CEVAP
22 ŞUBAT 2011, Salı


Parametre ne sunucusuna geçirilir

Sunucu tarafı kodu (belgelerine) request.term geçmesi gerekir:

İstek bir nesne, bir tek "anlamına gelir" terimi özellik adı şu anda metin değeri giriş.

Temelde, autocomplete kodunuzda şöyle bir şey olacak:

$("#autocomplete").autocomplete({
    // request.term needs to be passed up to the server.
    source: function(request, response) { ... }
});

ve JSON yanıt bakmak gerekir gibi mi?

autocomplete widget label value özellikleri ile JSON nesneleri bir dizi sadece value, belirtirseniz etiket olarak kullanılacak olsa da) bekliyor. En basit durumda, sadece bu gibi görünen bir veri döndürebilir:

[
    { label: 'C  ', value: 'C  ' }, 
    { label: 'Java', value: 'Java' }
    { label: 'COBOL', value: 'COBOL' }
]

Eğer daha karmaşık bir şey gerekiyorsa, $.ajax işlevi success bağımsız değişken otomatik tamamlama olmadan geri veri normalleştirmek için kullanabilirsiniz:

source: function( request, response ) {
    $.ajax({
        /* Snip */
        success: function(data) {
            response($.map( data.geonames, function( item ) {
                return {
                    label: item.name   (item.adminName1 ? ", "   item.adminName1 : "")   ", "   item.countryName,
                    value: item.name
                }
            }));
         }
    });

Bu kod 16 ** örnek (Bu daha karmaşık bir senaryoda ajax otomatik tamamlama İşleri Genel iyi bir örnektir) alınır.

Temelde, ne başarılı bir ajax isteği üzerine, veri alınan normalize ($.map) kullanarak otomatik tamamlama widget ne beklediğini zanneder.

Bu yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cekehechu

    cekehechu

    20 HAZİRAN 2006
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008