Javascript 使用PHP将当前地理位置加载到数据库中

Javascript 使用PHP将当前地理位置加载到数据库中,javascript,php,mysql,ajax,geolocation,Javascript,Php,Mysql,Ajax,Geolocation,我目前正在尝试制作一个应用程序,将用户的当前位置上传到我的mysql数据库中。我知道如何在javascript中使用谷歌地图。我知道的足以让php工作 我不知道的是,我如何才能获取我当前的位置并不断地在数据库中循环它。我希望在没有Post&Get变量的情况下每2分钟更新一次用户位置。如果任何人有任何信息,任何文档或任何东西都会很好。我试着查了查 我发现有人说要使用AJAX,但我不确定在没有某种交互的情况下,它如何在我当前的位置循环 我还看到另一个谈论将其转换为JSON数据 任何想法都将不胜感激

我目前正在尝试制作一个应用程序,将用户的当前位置上传到我的mysql数据库中。我知道如何在javascript中使用谷歌地图。我知道的足以让php工作

我不知道的是,我如何才能获取我当前的位置并不断地在数据库中循环它。我希望在没有Post&Get变量的情况下每2分钟更新一次用户位置。如果任何人有任何信息,任何文档或任何东西都会很好。我试着查了查

我发现有人说要使用AJAX,但我不确定在没有某种交互的情况下,它如何在我当前的位置循环

我还看到另一个谈论将其转换为JSON数据


任何想法都将不胜感激

我将用简化的概念代码回答您,让您了解总体思路

首先,您需要使用Javascript在web应用程序中添加位置轮询功能:

// We only start location update process if browser supports it
if ("geolocation" in navigator) 
{
    request_location();
} 

// Requesting location from user
function request_location()
{
    // Will repeat the process in two minutes
    setTimeout(request_location, 1000*60*2);

    // Get location info from browser and pass it to updating function
    navigator.geolocation.getCurrentPosition(update_location);
}

// Sending location to server via POST request
function update_location(position)
{
    // For simplicity of example we'll 
    // send POST AJAX request with jQuery
    $.post("/update-location.php",
    {
        latitude : position.coords.latitude,
        longtitude : position.coords.longitude
    },
    function(){
        // Position sent, may update the map
    });
}
然后在服务器端,您必须从上述AJAX请求接收坐标:

<?php 

    $latitude = filter_input(INPUT_POST, 'latitude', FILTER_VALIDATE_FLOAT);
    $longtitude = filter_input(INPUT_POST, 'longtitude', FILTER_VALIDATE_FLOAT);

    if($latitude && $longtitude)
    {
        // @TODO: Update database with this data.
    }

您需要更加详细。你是如何让你的php工作的?这个php做什么?对不起。我想将我的位置更新到我的数据库中。同时,我希望其他用户更新他们的位置,然后我希望它每隔几分钟刷新每个人的位置。目的是让每个人都能看到其他人在地图上的位置。非常感谢你的回答。我还有一个问题。我把一切都安排好了。我已经检查并确认它正在代码中运行。一旦它进入PHP部分,我就无法让它更新数据库。当我将其设置为$latitude时,它会将我的数据库值重置回0.00000。对不起,我不是要你帮我写代码,但我似乎找不到这些信息。忽略不计。我明白了,很简单。谢谢你的帮助!