Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
¿Cómo envío un valor de latitud y longitud para que AJAX obtenga información de GeoNames?

Necesito ayuda y consejo si es posible.

Estoy trabajando en una tarea para un curso en línea y estoy perplejo. Tengo el html a continuación, tratando de enviar un valor de latitud a ajax para una solicitud de php a la API de geonames y devolver el océano más cercano. He intentado un par de formas diferentes, como se muestra a continuación en el código html.

 <select id="latitude"> <option value= "3.4360">3.4360</option> <option value="lat">133.7751</option> <option value="lat">106.3468</option> </select> <select id="longitude"> <option value= 55.3781>55.3781</option> <option value="lng">25.2744</option> <option value="lng">56.1304</option> </select>

Y esta es la solicitud de ajax que debería extraer la información del html anterior.

 $('#btnRun').click(function() { $.ajax({ url: "libs/php/getCountryInfo.php", type: 'POST', dataType: 'json', data: { lat: parseInt($('#latitude').val()), lng: parseInt($('#longitude').val()) }, success: function(result) { console.log(JSON.stringify(result)); if (result.status.name == "ok") { $('#txtDistance').html(result['data'][0]['distance']); $('#txtGeonameID').html(result['data'][0]['geonameid']); $('#txtName').html(result['data'][0]['name']); } }, error: function(jqXHR, textStatus, errorThrown) { // your error code } }); });

No creo que los dos se vinculen en absoluto y también eché un vistazo a la opción parseInt, pero ahora no tengo ideas.

Gracias por cualquier ayuda que pueda brindar.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Las etiquetas <option> en su Html son incorrectas, el atributo de valor se establece en las cadenas lat y lng y no en las latitudes y longitudes reales.

 <select id="latitude"> <option value="3.4360">3.4360</option> <option value="133.7751">133.7751</option> <option value="106.3468">106.3468</option> </select> <select id="longitude"> <option value="55.3781">55.3781</option> <option value="25.2744">25.2744</option> <option value="56.1304">56.1304</option> </select>

Además, si excluye el atributo de valor, el texto dentro de la opción se considera su valor. El marcado a continuación es equivalente al de arriba.

 <select id="latitude"> <option>3.4360</option> <option>133.7751</option> <option>106.3468</option> </select> <select id="longitude"> <option>55.3781</option> <option>25.2744</option> <option>56.1304</option> </select>

Los valores de latitud y longitud no son números enteros, por lo que no puede usar parseInt en ellos, tampoco hay razón para analizarlos como valores numéricos, ya que se convertirán nuevamente en String para enviarlos en la llamada ajax.

 $.ajax({ url: "libs/php/getCountryInfo.php", type: 'POST', dataType: 'json', data: { lat: $('#latitude').val(), lng: $('#longitude').val() }, success: function(result) { console.log(JSON.stringify(result)); if (result.status.name == "ok") { $('#txtDistance').html(result['data'][0]['distance']); $('#txtGeonameID').html(result['data'][0]['geonameid']); $('#txtName').html(result['data'][0]['name']); } }, error: function(jqXHR, textStatus, errorThrown) { // your error code } });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda