I want to parse users geolocation into my database.
In my database there are 2 rows called: latitude and longitude, I want the location to be stored into those rows.
Here is the HTML5 API that gets the location:
<script>
var x=document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position) {
x.innerHTML="Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
getLocation();
</script>
Here is the page that has the submit form
<div class="modal" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span class="fui-cross"></span></button>
<h4 class="modal-title"><center>Post</center></h4>
</div>
<div class="modal-body">
<form action="parse_post.php" method="post" name="form1" enctype="multipart/form-data">
<input name="post_type" type="hidden" value="a" />
<div class="form-group">
<textarea class="form-control" name="description" rows="6" maxlength="450" placeholder="write something"></textarea>
</div>
<div class="pull-right">
</div>
<div class="form-group">
<div id="demo" onLoad=""></div>
<div class="pull-right">
<input name="" type="submit" class="btn btn-info" value="Post" onclick="javascript:return validateMyForm();"/>
<input name="uid" type="hidden" value="<?php echo $_SESSION['id']; ?>" />
<input name="upass" type="hidden" value="<?php echo $_SESSION['userpass']; ?>" />
</div>
</div>
Any help would be appreciated Thanks
#Demo
is not a form field, so when you submit it nothing will be passed to the server. Try this instead
<input id="demo" type="text" />
Script
<script>
var x=document.getElementById("demo");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else
{
x.value = "Geolocation is not supported by this browser.";
}
}
function showPosition(position)
{
x.value ="Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
getLocation();
</script>
UPDATE
I figured there'd be more to this. Doesn't make sense to send those values as a combined string. Do this instead:
<input id="latitude" name="latitude" type="text" />
<input id="longitude" name="longitude" type="text" />
Script
<script>
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
}
function showPosition(position)
{
document.getElementById("latitude").value = position.coords.latitude;
document.getElementById("longitude").value = position.coords.longitude;
}
getLocation();
</script>