SORU
11 ŞUBAT 2013, PAZARTESİ


Select2 Ajax Yöntemi Seçme

Tamam, burada yanlış bir şey basit bir dizi olduğuna eminim ama ne olduğunu 100% değilim.

Kullanıcıların bir veritabanı arama ve sonuç seçmek için bir yol olarak Select2 AJAX yöntemi kullanmaya çalışıyorum. Sonuçları ile geri geleceğini kendisi de çağrı, ancak beni listeden cevabı seçmek için izin vermez. Ayrıca "" yukarı/ ok. aşağı hover veya seçmek için izin vermek için görünmüyor Daha fazla uzatmadan, burada benim kod:

index.html

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
        <link rel="stylesheet" type="text/css" href="select2/select2.css" media="screen" />
        <script src="select2/select2.js"></script>
        <script src="select.js"></script>
    </head>
    <body>
        <input type="text" style="width: 500px" class="select2">
    </body>
</html>

select.js

jQuery(function() {

  var formatSelection = function(bond) {
    console.log(bond)
    return bond.name
  }

  var formatResult = function(bond) {
    return '<div class="select2-user-result">'   bond.name   '</div>'
  }

  var initSelection = function(elem, cb) {
    console.log(elem)
    return elem
  }

    $('.select2').select2({
      placeholder: "Policy Name",
      minimumInputLength: 3,
      multiple: false,
      quietMillis: 100,
      ajax: {
        url: "http://localhost:3000/search",
        dataType: 'json',
        type: 'POST',
        data: function(term, page) {
          return {
            search: term,
            page: page || 1
          }
        },
        results: function(bond, page) {
          return {results: bond.results, more: (bond.results && bond.results.length == 10 ? true: false)}
        }
      },
      formatResult: formatResult,
      formatSelection: formatSelection,
      initSelection: initSelection
    })
})

Yanıt JSON

{
  error: null,
  results: [
    {
      name: 'Some Name',
      _id: 'Some Id'
    },
    {
      name: 'Some Name',
      _id: 'Some Id'
    }
  ]
}

Her şey aslında cevabı seçin ve kutunun içine girdi kuramıyorum ancak doğru çekin, gibi görünüyor. Bir sorun, bir yerde benim kod var mı?

CEVAP
11 ŞUBAT 2013, PAZARTESİ


another answer baktıktan sonra da her çağrı ile kimliği alan geçirmeye ihtiyacım var gibi görünüyor, aksi takdirde giriş devre dışı bırakır.

Örnek bu sabit kod:

$('.select2').select2({
  placeholder: "Policy Name",
  minimumInputLength: 3,
  multiple: false,
  quietMillis: 100,
  id: function(bond){ return bond._id; },
  ajax: {
    url: "http://localhost:3000/search",
    dataType: 'json',
    type: 'POST',
    data: function(term, page) {
      return {
        search: term,
        page: page || 1
      }
    },
    results: function(bond, page) {
      return {results: bond.results, more: (bond.results && bond.results.length == 10 ? true: false)}
    }
  },
  formatResult: formatResult,
  formatSelection: formatSelection,
  initSelection: initSelection
})

Edit

Bu upvoted olmaya devam ediyor beri biraz ayrıntılı ederim. .() select2 yöntem tüm sonuçları id benzersiz bir alan bekliyor. Neyse ki, bir çözüm var. id Bu seçenek, bu gibi bir işlevi kabul eder:

function( <INDIVIDUAL_RESULT> ) {
  // Expects you to return a unique identifier.
  // Ideally this should be from the results of the $.ajax() call. 
}

Benim eşsiz tanımlayıcı beri <RESULT>._id return <RESULT>._id; sadece

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DONFANTASTICKYPESS

    DONFANTASTIC

    1 Temmuz 2007
  • GavinMichaelBooth

    GavinMichael

    26 AĞUSTOS 2006
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008