Javascript 如何使PHP会话变量等于JS变量?

Javascript 如何使PHP会话变量等于JS变量?,javascript,php,session-variables,Javascript,Php,Session Variables,我想问,如何使PHP会话变量等于Javascript值 我试图实现的是: $_SESSION['lat'] = Javascript geolocation latitude value; $_SESSION['lng'] = Javascript geolocation longitude value; 我目前拥有的JS地理定位功能是: <script> function getLocation() { if (navigator.geolocation) { navigator

我想问,如何使PHP会话变量等于Javascript值

我试图实现的是:

$_SESSION['lat'] = Javascript geolocation latitude value;
$_SESSION['lng'] = Javascript geolocation longitude value;
我目前拥有的JS地理定位功能是:

<script>
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{   
document.getElementById('inputfield3').value = position.coords.latitude;
document.getElementById('inputfield4').value = position.coords.longitude;
}
</script>

函数getLocation()
{
if(导航器.地理位置)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML=“此浏览器不支持地理位置。”;}
}
功能显示位置(位置)
{   
document.getElementById('inputfield3')。value=position.coords.latitude;
document.getElementById('inputfield4')。value=position.coords.longitude;
}
如何使用getLocation()使$\u会话['lat']和$\u会话['lng']等于纬度和经度


因为我需要$_SESSION['lat']和$_SESSION['lng']在数据库中进行选择。谢谢。

我们从对这两种语言的基本理解中了解到

  • PHP是服务器端
  • JavaScript是客户端的

我们还知道,我们可以通过AJAX调用调用从客户端到服务器的请求。我建议您研究一下,以解决您的问题。

正如我们对这两种语言的基本理解所知

  • PHP是服务器端
  • JavaScript是客户端的

我们还知道,我们可以通过AJAX调用调用从客户端到服务器的请求。我建议您研究一下,以解决您的问题。

正如我们对这两种语言的基本理解所知

  • PHP是服务器端
  • JavaScript是客户端的

我们还知道,我们可以通过AJAX调用调用从客户端到服务器的请求。我建议您研究一下,以解决您的问题。

正如我们对这两种语言的基本理解所知

  • PHP是服务器端
  • JavaScript是客户端的
我们还知道,我们可以通过AJAX调用调用从客户端到服务器的请求。我建议您研究一下以解决您的问题。

您可以使用:

var httpRequest = null;
function getHttpObject()
{
    if (httpRequest != null)
        return;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE 8 and older
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

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

function showPosition(position)
{   
    document.getElementById('inputfield3').value = position.coords.latitude;
    document.getElementById('inputfield4').value = position.coords.longitude;

    getHttpObject();

    // I don't know how to get the positions for showPosition, so you may have to change this part.
    httpRequest.open("GET", "set_position.php?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude, true);

    httpRequest.onreadystatechange = function()
    {
        if (httpRequest.readyState == 4 && httpRequest.status == 200)
        {
            // Handle the response here. Show error or success message or whatever...
        }
    };

    httpRequest.send(null);
}
然后在php脚本上,您可以设置会话的值,验证会话并验证值(当然)

注意:已经一个世纪了,我没有用纯JS编写ajax。请警告我有错误

更新:

我已经根据和文档修复了使用
getCurrentPosition
回调的方法

更新2:

您可以使用常见的方法,通过
表单
将数据发送到数据库。忘掉上面的一切,试试这个:

假设你有这样一个表格:

<form method="post" action="set_positions.php" id="form1">
    <input type="text" id="inputField3" />
    <input type="text" id="inputField4" />
</form>
因此,您将在PHP脚本中收到这些字段。请注意,如果您不想让用户更改其值,这些字段也可以是隐藏的。

您可以使用:

var httpRequest = null;
function getHttpObject()
{
    if (httpRequest != null)
        return;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE 8 and older
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

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

function showPosition(position)
{   
    document.getElementById('inputfield3').value = position.coords.latitude;
    document.getElementById('inputfield4').value = position.coords.longitude;

    getHttpObject();

    // I don't know how to get the positions for showPosition, so you may have to change this part.
    httpRequest.open("GET", "set_position.php?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude, true);

    httpRequest.onreadystatechange = function()
    {
        if (httpRequest.readyState == 4 && httpRequest.status == 200)
        {
            // Handle the response here. Show error or success message or whatever...
        }
    };

    httpRequest.send(null);
}
然后在php脚本上,您可以设置会话的值,验证会话并验证值(当然)

注意:已经一个世纪了,我没有用纯JS编写ajax。请警告我有错误

更新:

我已经根据和文档修复了使用
getCurrentPosition
回调的方法

更新2:

您可以使用常见的方法,通过
表单
将数据发送到数据库。忘掉上面的一切,试试这个:

假设你有这样一个表格:

<form method="post" action="set_positions.php" id="form1">
    <input type="text" id="inputField3" />
    <input type="text" id="inputField4" />
</form>
因此,您将在PHP脚本中收到这些字段。请注意,如果您不想让用户更改其值,这些字段也可以是隐藏的。

您可以使用:

var httpRequest = null;
function getHttpObject()
{
    if (httpRequest != null)
        return;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE 8 and older
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

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

function showPosition(position)
{   
    document.getElementById('inputfield3').value = position.coords.latitude;
    document.getElementById('inputfield4').value = position.coords.longitude;

    getHttpObject();

    // I don't know how to get the positions for showPosition, so you may have to change this part.
    httpRequest.open("GET", "set_position.php?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude, true);

    httpRequest.onreadystatechange = function()
    {
        if (httpRequest.readyState == 4 && httpRequest.status == 200)
        {
            // Handle the response here. Show error or success message or whatever...
        }
    };

    httpRequest.send(null);
}
然后在php脚本上,您可以设置会话的值,验证会话并验证值(当然)

注意:已经一个世纪了,我没有用纯JS编写ajax。请警告我有错误

更新:

我已经根据和文档修复了使用
getCurrentPosition
回调的方法

更新2:

您可以使用常见的方法,通过
表单
将数据发送到数据库。忘掉上面的一切,试试这个:

假设你有这样一个表格:

<form method="post" action="set_positions.php" id="form1">
    <input type="text" id="inputField3" />
    <input type="text" id="inputField4" />
</form>
因此,您将在PHP脚本中收到这些字段。请注意,如果您不想让用户更改其值,这些字段也可以是隐藏的。

您可以使用:

var httpRequest = null;
function getHttpObject()
{
    if (httpRequest != null)
        return;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE 8 and older
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

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

function showPosition(position)
{   
    document.getElementById('inputfield3').value = position.coords.latitude;
    document.getElementById('inputfield4').value = position.coords.longitude;

    getHttpObject();

    // I don't know how to get the positions for showPosition, so you may have to change this part.
    httpRequest.open("GET", "set_position.php?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude, true);

    httpRequest.onreadystatechange = function()
    {
        if (httpRequest.readyState == 4 && httpRequest.status == 200)
        {
            // Handle the response here. Show error or success message or whatever...
        }
    };

    httpRequest.send(null);
}
然后在php脚本上,您可以设置会话的值,验证会话并验证值(当然)

注意:已经一个世纪了,我没有用纯JS编写ajax。请警告我有错误

更新:

我已经根据和文档修复了使用
getCurrentPosition
回调的方法

更新2:

您可以使用常见的方法,通过
表单
将数据发送到数据库。忘掉上面的一切,试试这个:

假设你有这样一个表格:

<form method="post" action="set_positions.php" id="form1">
    <input type="text" id="inputField3" />
    <input type="text" id="inputField4" />
</form>

因此,您将在PHP脚本中收到这些字段。请注意,如果您不想让用户更改其值,这些字段也可以是
隐藏的
字段。

这可能会对您有所帮助

您可以将COOKIE与JAVASCRIPT一起使用

请参阅下面的函数

function setCookie(cname, cvalue, exhour)
{
    var d = new Date();
    d.setTime(d.getTime()+(exhour*60*60*1000));
    var expires = "expires="+d.toGMTString();
    document.cookie = cname + "=" + cvalue + "; " + "path=/" + "; " + expires;
}
function getCookie(cname)
{
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) 
    {
        var c = ca[i].trim();
        if (c.indexOf(name)==0) return c.substring(name.length,c.length);
    }
    return "";
}
函数setCookie(cname、cvalue、exhour)
{
var d=新日期();
d、 设置时间(d.getTime()+(exhour*60*60*1000));
var expires=“expires=“+d.togmString();
document.cookie=cname+“=”+cvalue+”;“+”路径=/“+”;“+过期;
}
函数getCookie(cname)
{
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);

对于(var i=0;i可能这将帮助您

您可以将COOKIE与JAVASCRIPT一起使用

请参阅下面的函数

function setCookie(cname, cvalue, exhour)
{
    var d = new Date();
    d.setTime(d.getTime()+(exhour*60*60*1000));
    var expires = "expires="+d.toGMTString();
    document.cookie = cname + "=" + cvalue + "; " + "path=/" + "; " + expires;
}
function getCookie(cname)
{
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) 
    {
        var c = ca[i].trim();
        if (c.indexOf(name)==0) return c.substring(name.length,c.length);
    }
    return "";
}
函数setCookie(cname、cvalue、exhour)
{
var d=新日期();
d、 设置时间(d.getTime()+(exhour*60*60*1000));
var expires=“expires=“+d.togmString();
document.cookie=cname+“=”+cvalue+”;“+”路径=/“+”;“+过期;
}
函数getCookie(cname)
{
变量名称=cname+“=”;
var ca=document.cookie.spl