2016-05-04 20 views
0

を追加するのAjaxとjQueryを使用する私はそれがどのように情報

<script type="text/javascript"> 
     $.ajax({ 
       url: 'obtenerPaises', 
       type: 'get', 
       success: function (data) { 
        console.log(data); 
       } 
     }); 
    </script> 

正常に動作するものをjQueryを使って、このコードを持っている。しかし、私はjqueryの-UIのオートコンプリートのプラグインを使用する必要があり、どのように私は私が受け取る情報を追加することができます次のコードのデータに?

<script> 
    $(function() { 
    var availableTags = [ 
     "ActionScript", 
     "AppleScript", 
     "Asp", 
     "BASIC", 
     "C", 
     "C++", 
     "Clojure", 
     "COBOL", 
     "ColdFusion", 
     "Erlang", 
     "Fortran", 
     "Groovy", 
     "Haskell", 
     "Java", 
     "JavaScript", 
     "Lisp", 
     "Perl", 
     "PHP", 
     "Python", 
     "Ruby", 
     "Scala", 
     "Scheme" 
    ]; 
    $("#tags").autocomplete({ 
     source: availableTags 
    }); 
    }); 
    </script> 
+0

Okだから、オートコンプリートプラグインのソースオプションとしてあなたのajaxリクエストを設定してください。 –

+0

availableTagsをグローバル変数として作成します。varは$(function ...)の外側にあり、次に.push(newTag)で配列に追加します。次に、新しい情報をその上にプッシュします。新しいタグを変更するたびに、新しいタグを付け直す必要があります。 – nurdyguy

+0

@nurdyguyはもう少し管理する必要はありません(なぜなら、配列への定数のプッシュはAJAXオブジェクトのレスポンスの2倍、3倍などのインスタンスを引き起こすからです)。代わりに静的リストがサーバ上で作成され、クライアント –

答えて

0

これには、jQuery-UI機能を使用する必要があります。あなたはここで多くを読むことができます:http://api.jqueryui.com/autocomplete/

$("#tags").autocomplete({ 
    source: function (request, response) { 
     $.getJSON('obtenerPaises', {}, response); 
    }, 
    minLenght: 0, 
    select: function (event, ui) { 
     //here comes what happens if a user selected an item 
    }, 
    response: function (event, ui) { 
     //when server response 
    }, 
    close: function (event, ui) { 
     //It is trigger when the menu is closed 
    } 
}); 
0

jQuery UI Autocomplete docsによると、データソースとしてGET AJAXリクエストを使用することができます。 JSONPは、データオブジェクト(この場合は配列)をサーバーからウィジェットが使用するリストに変換する、ドメイン間で安全なGET固有の要求タイプです。したがって、次のようになります:

$("#tags").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url: 'obtenerPaises', 
      dataType: 'jsonp', 
      success: function (data) { 
       console.log(data); 
      } 
    }); 
    } 
}); 
関連する問題