每2秒自动插入mysql数据库

时间:2016-10-07 10:31:37

标签: javascript jquery mysql ajax html5

我有一个获取用户纬度和经度的代码。这是我用来获得lat和long的代码:

function showlocation() {
    navigator.geolocation.watchPosition(callback);
}

function callback(position) {
    document.getElementById('latitude').innerHTML = position.coords.latitude;
    document.getElementById('longitude').innerHTML = position.coords.longitude;
}

我想每隔2秒插入一次用户的lat和。

1 个答案:

答案 0 :(得分:0)

以下是一个工作示例,您需要使用它来满足您的需求:

首先:HTML / JavaScript / jQuery

<强>的index.html

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
    </script>
  </head>
  <body>
    <script>
      window.setInterval(function() {
        showlocation();
      }
                         , 2000);  // 2000==2 seconds
      function showlocation() {
        navigator.geolocation.watchPosition(callback);
      }
      function callback(position) {
        var lat = position.coords.latitude;
        var lon = position.coords.longitude;
        document.getElementById('latitude').innerHTML = lat;
        document.getElementById('longitude').innerHTML = lon;
        $.post('processor.php', 'lat=' + lat + '&lon=' + lon, function(response) {
          //alert(response);
        }
              );;
      }
    </script>
    Latitude: <span id="latitude"></span>
    <br/> 
    Longitude: <span id="longitude"></span>
  </body>
</html>

第二

<强> processor.php

    <?php
    $lat=$_POST["lat"];
    $lon=$_POST["lon"];
    // insert into database
    $conn = mysqli_connect("localhost","user","pass","database");
    $sql="INSERT INTO location_tbl (latitude, longitude) VALUES ('$lat','$lon')";  
    // You might need some conditional insert here and for every 2 seconds you will get lots of records in database!

    mysqli_query($conn,$sql) or die(mysqli_error($conn));
   // return 'done';
    ?>

This stack-overflow post could be a good reference

请注意,它需要用户权限才能共享位置,否则将无法正常工作。

提供的解决方案仅用于教育目的 ...

还有许多其他实用的方法可以实现这个问题的目标。

为什么不使用某些PHP IP地理位置类/ API,并在更改后重新记录经度,纬度?