thilakan Posted October 3, 2014 Share Posted October 3, 2014 (edited) Undefined error Why I am getting this error? What I am trying archive - I want to get the client location and stored in the database Please advise me. Thank you. <!DOCTYPE html> <html> <body> <script> function geoFindMe() { var output ; if (!navigator.geolocation){ output.innerHTML = "<p>Geolocation is not supported by your browser</p>"; return; } else { function success(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; return(output.innerHTML = '<p>Latitude is ' + latitude + '° <br>Longitude is ' + longitude + '°</p>'); }; function error() { output.innerHTML = "Unable to retrieve your location"; }; navigator.geolocation.getCurrentPosition(success, error); } } var x = geoFindMe(); alert(x); </script> </body> </html> Edited October 3, 2014 by thilakan Quote Link to comment https://forums.phpfreaks.com/topic/291409-undefined-error/ Share on other sites More sharing options...
.josh Posted October 3, 2014 Share Posted October 3, 2014 (edited) getCurrentPosition makes an asynchronous call to a service to determine location (assuming user accepts the popup prompt to allow it). So, you can't just assign it to x and get immediate results. It's just like doing an AJAX call where you have a callback function (success) when results are returned. So, you need to refactor your code to wait for success (or error) to be called. You can use pretty much any AJAX tutorial / script for tips/principles on how to work with async calls. Edited October 3, 2014 by .josh Quote Link to comment https://forums.phpfreaks.com/topic/291409-undefined-error/#findComment-1492607 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.