Pregunta

Yo estaba usando geonames.org a la ciudad y el estado de autocompletar, pero pareció ser demasiado lento para ser fiable. Mi código es el siguiente, y hace el trabajo (espere unos 10 segundos para ver los resultados de autocompletar)

Antiguo (de trabajo) código aquí: http://jsbin.com/umewo3/2 / editar

  $(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
    });
  });

Ahora estoy usando YQL ya que proporcionan una respuesta mucho más rápida. La cuestión es que no parecen entender cómo asignar adecuadamente la respuesta. Se puede ver que estoy enviando una solicitud bien formado, y conseguir la parte posterior respuesta -. Pero de alguna manera no estoy tratando con la respuesta adecuada

Nuevo (roto) código aquí: http://jsbin.com/aqoke3/2 / editar

$(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
    });
  });
¿Fue útil?

Solución

He encontrado el problema. Estoy tratando de modo adecuado después de todo. Me las arreglé para eliminar el P de la tipoDatos jsonp.

Todo está bien: http://jsbin.com/aqoke3/4/edit

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top