Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Geolocate and Form Auto-Submit

Status
Not open for further replies.

Krus1972

Programmer
Mar 18, 2004
145
US
I am trying to retrieve the visitor's coordinates using the standard HTML5 Geolocation API using Javascript.

The problem is, I need to get the latitude & longitude variables into a server-side variable. The only way to accomplish this is to first, retrieve the coordinates and then place them into a hidden form input and then auto-submit the form and pass the hidden form inputs that contain the coordinates.

The problem I am having is auto-submitting the form after the coordinates are obtained by the javascript.

I have the following code:

Code:
<% lat = Request("lat")
   lng = Request("lng")
   Response.write("lat= " & lat & "<br />")
   Response.write("long= " & lng & "<br />")
%>  

<script>

function geoFindMe() 
{
  var output = document.getElementById("out");
    if (!navigator.geolocation){
       output.innerHTML = "<p>Geolocation is not supported by your browser</p>";
    return;
}

function success(position) 
{
    var latitude  = position.coords.latitude;
    var longitude = position.coords.longitude;
     document.searchform.lat.value = latitude;
     document.searchform.lng.value = longitude;
     document.searchform.action ="/includes/stores/Get_Cordinates.asp";
     document.searchform.submit();
     submitform();

    
};

function error() 
{
 output.innerHTML = "Unable to retrieve your location";
};

output.innerHTML = "<p>Locating…</p>";
navigator.geolocation.getCurrentPosition(success, error);
}

</script>

<script>
geoFindMe()
</script>

<div id="out"></div>

<form method="post"  name="searchform" action="/includes/stores/Get_Cordinates.asp" >
 <input type='hidden' name='lat' value='' />
 <input type='hidden' name='lng' value='' />
</form>



Can someone advise as to why this won't auto-submit the from named "searchform" after the coordinates have been retrieved?

My goal is to have the javascript retrieve the user's coordinates, place them into the hidden form inputs, and then have the javscript automatically submit the "searchform" form.

Any help would be well appreciated.
 
Your script call occurs before the form exists in the document object model.

Chris.

Indifference will be the downfall of mankind, but who cares?
Time flies like an arrow, however, fruit flies like a banana.
Webmaster Forum
 
Your JS is executing before your HTML has a chance to actually render and as such does not exist in the DOM. So there is no form to submit at that point.

Move your geoFindMe() function to below the form.

----------------------------------
Phil AKA Vacunita
----------------------------------
Ignorance is not necessarily Bliss, case in point:
Unknown has caused an Unknown Error on Unknown and must be shutdown to prevent damage to Unknown.

Web & Tech
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top