2015-05-26 3 views
1

Итак, я пытаюсь найти местоположение пользователей, а затем заменить координаты позиции на запрос json URL для широты и долготы с помощью jQuery, а затем вывести его на ElementByID на стр.HTML5 Geolocation - Замените/добавьте данные в строку URL-адреса Ajax

Ниже приведено то, что я придумал, но он, похоже, не работает. Вместо того чтобы заменить строку он выдает в качестве http://api.wunderground.com/api/My-API-key/geolookup/conditions/q/+position.coords.latitude+,+position.coords.longitude+.json

Ниже приведен код,

<a id="demo"></a> 

<script> 
    var x = document.getElementById("demo"); 


    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 


jQuery(document).ready(function showPosition(position) { 
    $.ajax({ 
    url : "http://api.wunderground.com/api/MY-API-KEY/geolookup/conditions/q/" + position.coords.latitude + "/" + position.coords.longitude + ".json", 
    dataType : "jsonp", 
    success : function(parsed_json) { 
    var location = parsed_json['location']['city']; 
    var temp_f = parsed_json['current_observation']['temp_f']; 
    x.innerHTML = location + temp_f 
    } 
    }); 
}); 


</script> 

Я использую функцию HTML5 Geolocation, чтобы получить место, а затем я пытаюсь заменить AJAX URL, добавив данные о местоположении на конец для вывода правильной температуры, но по какой-то причине он не работает.

Любые идеи и советы были бы замечательными!

ответ

1

Хорошо, я понял. Ниже приведен ответ. Проблема заключалась в том, что я пытался заменить конечный URL на переменную, которая была в другой функции. Мне просто нужно было включить запрос json в правильную функцию для чтения/доступа к переменной.

Я чувствую себя немым, что раньше не видел. Ха-ха

<a id="demo"></a> 

<script> 
    var x = document.getElementById("demo"); 


    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 

function showPosition(position) { 

    var location = position.coords.latitude + 
    "," + position.coords.longitude;  


jQuery(document).ready(function($) { 

    $.ajax({ 
    url : "https://api.wunderground.com/api/MY-API-KEY/geolookup/conditions/q/"+location+".json", 
    dataType : "jsonp", 

    success : function(parsed_json) { 
    var location = parsed_json['location']['city']; 
    var temp_f = parsed_json['current_observation']['temp_f']; 
    x.innerHTML = "Current temperature in " + location + " is: " + temp_f; 
    } 
    }); 
}); 
    } 

</script> 
0

Попробуйте это :-)

function showPosition(position) { 
     $.ajax({ 
     url : "http://api.wunderground.com/api/My-API-key/geolookup/conditions/q/" +position.coords.latitude+ "," +position.coords.longitude+ ".json", 
     dataType : "json", 
     type : 'post', 
     data: { changeThis: position.coords.latitude, 
       changeThis: position.coords.longitude 
     }, 
     success : function(data) { 
     if(data.success){ 
      alert("hello"); 

      } 

     } 
+0

Извините, но я получаю Uncaught SyntaxError: Неожиданный конец ввода в Chrome. Это так же, как и было, спасибо за помощь! –