/ / HTML5 जियोलोकेशन पहली बार काम नहीं करता है - php, जावास्क्रिप्ट, jquery, html5

एचटीएमएल 5 जिओलोकेशन पहली बार काम नहीं करता है - PHP, जावास्क्रिप्ट, jquery, html5

वास्तव में उम्मीद है कि कोई मुझे इस समस्या के साथ मदद कर सकता है, मुझे लगता है कि यह HTML5 / Jquery संयोजन पूरी तरह से काम कर रहा है, इसके अलावा यह काम करने के लिए एक ताज़ा लेता है!

मूल रूप से मैं स्टोर करने के लिए HTML5 जियोलोकेशन का उपयोग कर रहा हूंउपयोगकर्ता एक सत्र में / लंबे समय तक लेट जाते हैं और फिर इसके साथ कुछ अन्य सामान करते हैं। एक समस्या के बाद मैं इसके साथ क्या करता हूँ, यह वास्तव में अव्यक्त / लंबे समय से भंडारण है जो मुझे दुःख दे रहा है

मेरे द्वारा उपयोग किया जा रहा कोड नीचे है। मैंने टिप्पणी की है कि मुझे पता लगा है कि समस्या कहां है।

किसी भी मदद की सराहना की!

<?php
session_start();
$url = $_SERVER["REQUEST_URI"];
?>
<script src="modernizr.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
}
function showPosition(position)
{
localStorage.lat = position.coords.latitude;
localStorage.lon = position.coords.longitude;

}

$(document).ready(function(){
if (Modernizr.geolocation) {
getLocation();
//If I run getLocation() again here it works first time
//A bit of debugging shows that this is where the lat/long values are being lost
$.get("savetosession.php", {lat: localStorage.lat, lon: localStorage.lon}, function(result){
$.get("dothis.php", {url:<?php echo $url; ?>}, function(result){
$("div").html(result);
});
});
}
});

</script>
<div></div>

उत्तर:

उत्तर № 1 के लिए 1

समस्या यह है कि $.get पहले निष्पादित किया जाता है getLocation() किया जाता है (क्योंकि जावास्क्रिप्ट गैर-अवरुद्ध है)।

आप इस तरह से कॉलबैक का उपयोग कर सकते हैं:

<script>
$(document).ready(function(){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
localStorage.lat = position.coords.latitude;
localStorage.lon = position.coords.longitude;
$.get("savetosession.php", {lat: localStorage.lat, lon: localStorage.lon}, function(result){
$.get("dothis.php", {url:<?php echo $url; ?>}, function(result){
$("div").html(result);
});
});
});
} //endif
});
</script>