1

我正在使用 HTML5 地理位置来获取用户当前位置并将其显示在谷歌地图上。但是,我还想返回此位置的 lat 和 long 值,并将这些值传递给 SQL 数据源查询。我想要一个 lat 变量和一个 long 变量通过。为了获得纬度,我只是分配了 var jsVar = position.coords.latitude 但这并没有返回任何东西。我意识到我应该使用隐藏字段来实现将 var 发送到服务器,但我不完全确定当有多个隐藏字段时该怎么做。任何帮助将非常感激。这是我所拥有的:

Javascript

function SetHiddenVariable() {

  var jsVar = position.coords.latitude;
    // Set the value of the hidden variable to 
    // the value of the javascript variable
    var hiddenControl = '<%= inpHide.ClientID %>';
    document.getElementById(hiddenControl).value = "Latitude = " + jsVar;
}

ASP.NET

    <body onload="SetHiddenVariable()">
    <form id="form1" runat="server">
    <div>   
        <input id="inpHide" type="hidden" runat="server" />   
        <asp:TextBox ID="txtJSValue" runat="server"></asp:TextBox>
        <asp:Button ID="btnJSValue" 
           Text="Click to retrieve Javascript Variable" 
           runat="server" onclick="btnJSValue_Click"/>
    </div>
    </form>
</body>

C#背后的代码

protected void btnJSValue_Click(object sender, EventArgs e)
{
    txtJSValue.Text = inpHide.Value;
}
4

2 回答 2

0

这是执行此操作的 html 方式,可以帮助您入门。您只需要连接您的按钮单击事件并将输入转换为服务器端控件。祝你好运!

<!DOCTYPE html>
<html>
<head>
<script>
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(success);
}

function success(position) {
        document.getElementById("lat").value = position.coords.latitude;
        document.getElementById("long").value = position.coords.longitude;
} 
</script>
</head>

<body>
    <form id="form1" runat="server">
    <div>   
        Lat: <input id="lat" type="text" />
        Long: <input id="long" type="text" />
    </div>
    </form>
</body>
</html>
于 2013-01-02T17:27:42.350 回答
0

您可以在客户端连接数据(使用逗号或其他对您有意义的分隔符,然后在服务器端分隔。在这种情况下,您只需要使用一个变量。

于 2013-01-02T15:28:23.070 回答