• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

294
Views
¿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.

about 3 years ago · Santiago Trujillo
1 answers
Answer question

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 } });
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error