如何在几秒钟后使用 ajax 自动将数据插入数据库

How to automatically insert data to database using ajax after several seconds

我有来自 html5 的地理位置代码。在这段代码中,当我点击按钮时,它会在我点击 "Try It" 按钮时显示纬度和经度数据。 演示:demo 我已经自定义代码并使用 ajax 将数据插入数据库。现在我想按下按钮,我想在 5 秒后自动发送数据。

<script 
 src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
</script>
  <button onclick="getLocation()">Try It</button>
<script>
  function getLocation() {
   if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
    } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
   }
 }

     function showPosition(position) {
     var lat = position.coords.latitude;
     var long = position.coords.longitude;

     //AJAX CALL THIS WILL PASS THE VALUE OF JAVASCRIPT TO PHP
     $.ajax({
      type: 'post',
      url: 'ajax-processor.php',
      data: {
        lat: lat,
        long: long
       },
       success: function(html) {
         alert("Success");
        }
      });
    }
    </script>

要插入我的 ajax 数据,我有这段代码,它直接插入数据库 (ajax-processor.php)

$lat = $_POST['lat'];
$long = $_POST['long'];

//your code to insert to the database here using the $lat and $long variable

现在我想在没有任何按钮的情况下在 5 秒后插入此数据。在地理位置代码中我有这个代码

<button onclick="getLocation()">Try It</button>

我想隐藏这个按钮,经纬度数据会在5秒后自动发送到数据库。 总之我想插入我的纬度和经度数据将在 5 秒后发送到数据库。 请帮助我。

试试这个代码:

setTimeout(function() { 
    getLocation();
}, 5000);
var timer = setTimeout(function() { 
 $.ajax({ 
 type:post, 
 url : 'ajax-processor.php', 
 success: function(html) { 
       alert("Success"); 
     } 
   }); 
 }, 500);

您需要更改几行代码。

<button onclick="getLocation()">Try It</button>

<button>Try It</button>

然后你需要添加jQuery来设置超时。

<script>

setTimeout(function() { 
    getLocation();
}, 5000); // for 5 secs


  function getLocation() {
   if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
   } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
   }
 }

 function showPosition(position) {
   var lat = position.coords.latitude;
   var long = position.coords.longitude;

   //AJAX CALL THIS WILL PASS THE VALUE OF JAVASCRIPT TO PHP
   $.ajax({
     type: 'post',
     url: 'ajax-processor.php',
     data: {
       lat: lat,
       long: long
     },
     success: function(html) {
       alert("Success");
     }
  });
}
</script>