Question

J'utilisais geonames.org de saisie semi-automatique ville et l'État, mais trouvé qu'il était beaucoup trop lent pour être fiable. Mon code est le suivant, et ne fonctionne (attendez environ 10 secondes pour voir les résultats de saisie semi-automatique)

Code Vieux (travail) ici: http://jsbin.com/umewo3/2 / modifier

  $(function() {
    $( "#sf_city" ).autocomplete({
      source: function( request, response ) {
        $.ajax({
          url: "http://ws.geonames.org/searchJSON",
          dataType: "jsonp",
          data: {
            featureClass: "P",
            style: "full",
            maxRows: 10,
            country: 'US',
            name_startsWith: request.term
          },
          success: function( data ) {
            response( $.map( data.geonames, function( item ) {
              return {
                value: item.name + (item.adminName1 ? ", " + item.adminCode1 : "")
              }
            }));
          }
        });
      },
      minLength: 2
    });
  });

Maintenant, je me sers YQL car ils fournissent une réponse beaucoup plus rapide. Le problème est que je ne semble pas comprendre comment cartographier correctement la réponse. Vous pouvez voir que je vous envoie une demande bien formée, et d'obtenir la réponse au -. Mais je suis en quelque sorte ne traite pas la réponse appropriée

Code Nouveau (cassé) ici: http://jsbin.com/aqoke3/2 / modifier

$(function() {
    $( "#sf_city" ).autocomplete({
      source: function( request, response ) {
        $.ajax({
          url: "http://query.yahooapis.com/v1/public/yql",
          dataType: "json",
          data: {
            q: 'select name,admin1.code from geo.places where text="' + request.term + '*" and country.code="US" limit 10 | sort(field="popRank", descending="true")',
            format: 'json',
            callback: 'cbfunc'
          },
          success: function( data ) {
            response( $.map( data.query.results.place, function( item ) {
              return {
                value: item.name
              }
            }));
          }
        });
      },
      minLength: 2
    });
  });
Était-ce utile?

La solution

Je trouve la question. Je traite correctement après tout. J'ai réussi à retirer le P du dataType jsonp.

Tout est bien: http://jsbin.com/aqoke3/4/edit

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top