user4244510
user4244510

Reputation: 79

Insert HTML5 location into MySQL database

I would like to insert HTML5 location of the user into the database. So basically I want it to submit the location where the user is when he/she presses submit.

HTML5 location code:

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;  
}

My current code:

$post = filter_input(INPUT_POST, 'post', FILTER_SANITIZE_SPECIAL_CHARS);
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_SPECIAL_CHARS);

INSERT INTO news (post, name, date, location) VALUES ('".$post."', '".$name."', '".date('Y-m-d H:i:s')."', '".$location."')

Upvotes: 0

Views: 1513

Answers (1)

Tom Kraak
Tom Kraak

Reputation: 121

You will need an Ajax call for that such as:

function postData(phpFile, newData){
    $.ajax({
        type: 'POST',
        data: newData,
        url: phpFile,
    success: function(data) {
    },
    error: function() {}
    });
}

When the submit button is pressed you will call postData('yoursavephpfile.php', { "location" : getLocation() }); via a onclick attribute. (Assuming your getLocation returns the location value) NOTE: don't forget to add the latest jquery to your header:

<script src="http://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>

Your php file would look like:

<?php

 $location = $_POST['location'];
 //Then perform your query here......
?>

Upvotes: 2

Related Questions