0

jquery ui autocomplete をデータベースからのソースに組み込むことができます。どのように、準備された json ファイルからソースを取得しようとしていますが、内容は次のようになります:-

{"data":[{"id":"1","country_name_en":"USA","country_name_hk":"\u7f8e\u570b"},{"id":"2","country_name_en":"China","country_name_hk":"\u4e2d\u570b"},{"id":"3","country_name_en":"British","country_name_hk":"\u82f1\u570b"}]}

次のようにjqueryコードを変更しようとしました:-

<script>
$( "#country" ).autocomplete({
    source: function(request,response) {
      $.getJSON('../../database/country.json',{id: data.id},function(data){
            alert(data);
      })
    }
});
</script>

しかし、私はフォーマットを正しく書いていないと思います。json ファイルからデータを抽出する方法を改善するにはどうすればよいですか?

4

4 に答える 4

0

responseオートコンプリートは、許可されたオートコンプリート値を使用してソース メソッドに渡された関数を呼び出して、そうするように指示するまで何も表示しません。したがって、次のようにする必要があります。

$( "#country" ).autocomplete({
    source: function(request,response) {
        $.getJSON('../../database/country.json',{id: data.id},function(data){
            var choices = [];
            for(var i=0;i<data.data.length;i++) {
                choices.push(data.data[i].country_name_en);
            }
            response(choices);
        })
    }
});

また、すべてに「データ」という名前を付けると、混乱することになります。

于 2013-04-25T05:04:07.070 に答える
0

jsonからデータを取得するには、これを試してください..

$("#country").autocomplete({
   source: function(request, response) {
       $.getJSON('../../database/country.json', { id: data.id }, function(data) {
          $.each(data, function(key, value) {
               alert(value.country_name_en); // json data
          });
       });
    }
});
于 2013-04-25T05:12:31.507 に答える
0

問題は、ajax 成功ハンドラーからオートコンプリート コールバックを呼び出す必要があることです。

$(function() {
    $("#country").autocomplete({
        source : function(request, response) {
            $.getJSON('country.json', {
                id : 1
            }, function(data) {
                var list = $.map(data.data, function(item, index) {
                    return {
                        id : item.id,
                        label : item.country_name_en
                    };
                });
                response(list);
            })
        }
    });
})

デモ:プランカー

于 2013-04-25T05:26:23.250 に答える
0

Ajax を使用して、geonames.org から国をリストするこの記事を参照してください (国、州、地域の巨大なリストが含まれています)。これは何らかの形であなたを助けます。

于 2013-04-25T05:05:13.307 に答える