0

こんにちは、郵便番号フィールドに jquery UI オートコンプリート プラグインを使用しています。

jQuery UI オートコンプリート プラグインは geonames.org の JSON 応答を使用します。

応答を取得するための私のコードは次のとおりです:-

jQuery( "#"+prefix+"_zip" ).autocomplete({

        source: function( request, response ) {
            jQuery.ajax({
                url: "http://ws.geonames.org/postalCodeSearchJSON",
                dataType: "jsonp",
                data: {
                    style: "full",
                    maxRows: 12,
                    postalcode_startsWith: request.term
                },
                success: function( data ) {

                    response( jQuery.map( data.postalCodes, function( item ) {
                        return {
                            label: item.placeName + (item.adminCode1 ? ", " + item.adminCode1 : "") + ", " + item.postalCode + ", "+item.countryCode,
                            value: item.postalCode
                        }
                    }));
                                        jQuery('.ui-autocomplete').css('width', '188px');
                }
            });
        }

今のところ、カーソルを郵便番号フィールドに置いて任意の郵便番号を入力すると、入力された番号のオートコンプリート リストが表示されるか、入力したコードの相対値が jQuery プラグインによって表示されると言えます。

カスタム要件が 1 つあります。米国の郵便番号のみに対して JSON 応答を取得したいと考えています。

つまり、郵便番号フィールドに値を入力すると、米国関連の郵便番号がオートコンプリート リストとして表示されます。

geonames.org から米国の郵便番号の JSON 応答のみを取得する方法を教えてもらえますか??

4

2 に答える 2

1

あなたのURLはパラメータとして国を渡すことができます.

例: メキシコ http://ws.geonames.org/searchJSON?&country=MX

米国 http://ws.geonames.org/searchJSON?&country=US

また、メキシコと米国のすべての都市を API に返すようにしたい場合は、次のようにできます。

http://ws.geonames.org/searchJSON?&country=US,MX&username=tpassolano

注: geonames には、ユーザー名、更新された API 呼び出しが必要になりました

お役に立てれば!

于 2013-01-11T18:19:14.927 に答える
0

リクエストを少し変更して、国のオプションを追加できます。

jQuery("#"+prefix+"_zip").autocomplete({
    source: function( request, response ) {
        jQuery.ajax({
            url: "http://ws.geonames.org/postalCodeSearchJSON",
            dataType: "jsonp",
            data: {
                style: "full",
                maxRows: 12,
                postalcode_startsWith: request.term,
                country: "US"
            },
            success: function( data ) {
                response( jQuery.map( data.postalCodes, function( item ) {
                    return {
                        label: item.placeName + (item.adminCode1 ? ", " + item.adminCode1 : "") + ", " + item.postalCode + ", "+item.countryCode,
                        value: item.postalCode
                    }
                }));
                jQuery('.ui-autocomplete').css('width', '188px');
            }
        });
    }
});

郵便番号検索のすべてのオプションは、GeoNames Web サービスのドキュメントにリストされています。

于 2012-12-20T16:13:19.697 に答える