不使用查询字符串将日期从JavaScript发送到PHP

时间:2014-08-24 05:39:20

标签: javascript php

有没有简单的方法可以在不使用查询字符串方法的情况下将数据从JavaScript传递到PHP。

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    }
}
function showPosition(position) {
    document.getElementById("getlat").value = position.coords.latitude;
    document.getElementById("getlon").value = position.coords.longitude;
}

HTML

<input type="hidden" id="getlat" name="getlat" value="<?php echo $_SESSION['polat']; ?>" /> 
<input type="hidden" id="getlon" name="getlon" value="<?php echo $_SESSION['polon']; ?>" />

PHP代码

$lat = '-27.486204'; // Should get latitude from JS here.
$long = '152.994962'; // Should get longitude from JS here.

    mysqli_query("SELECT * From `table_nme` where `latitude`='.$lat.' AND `longitude`='.$long.'");

我知道如何在Query String Process中执行此操作,但我需要它而不使用Query String Process。

1 个答案:

答案 0 :(得分:1)

您可以使用 ajax(jquery)将数据发送到服务器。

JS

$.ajax({url:"yourfile.php",type:"POST",async:false,
   data:{getlat:$("#getlat").val(),getlon:$("#getlon").val()}
});

PHP

$lat = $_POST["getlat"];
$lon = $_POST["getlon"];
...

另一种解决方案是使用cookie。我个人使用this来获取/设置我的cookie:

JS

....
$.cookie("data",{getlat:$("#getlat").val(),getlon:$("#getlon").val()});

PHP

$data = json_decode($_COOKIE["data"]);
$lat = $data["getlat"];
$lon = $data["getlon"];
...