将JavaScript变量发送到要与表单一起提交的其他页面

时间:2013-12-13 19:01:45

标签: javascript forms google-maps

让我解释一下......我试图让用户使用Google Maps v3 API在一个页面上确认他们的位置。我想保存并将用户的位置变量(纬度和经度)发送到要用用户填写的表单提交的下一页。最后,表单将提交给数据库。

我相信我想要保存的变量如下:

var pos = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);

该脚本位于标题中的Site.Master中。

创建表单并将其发送到下一页是否是实现此目的的最简单方法?

Google地图页面:

<%@ Page Title="Roadside Assistance: Location" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="RoadsideLoc.aspx.cs"     Inherits="Final_Project.RoadsideLoc" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeaderContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div style="text-align:center">
    <h1>Is this the location of your vehicle?</h1>

</div>

<div id="map-canvas" style="height:350px">

</div>

<div data-role="controlgroup" data-type="horizontal" style="text-align:center" runat="server">
    <a href="Roadside.aspx?" data-role="button">Yes</a>
    <a href="RoadsideLocNO.aspx" data-role="button">No</a>

</div>


</asp:Content>

2 个答案:

答案 0 :(得分:0)

您可以使用localStoragesessionStorage存储lat / lng,然后在需要时重新创建LatLng对象。

或者,您可以使用cookie在客户端存储数据。

答案 1 :(得分:0)

您可以通过应用多种方法来实现这一目标。

  1. 用户确认其位置后,请执行

    之类的操作
    var lat = position.coords.latitude, long = position.coords.longitude;
    window.location = "sitemaster2.aspx?latitude=" + lat + "&longitude=" + long;
    

    这样,您就可以在第二页中访问此坐标并将其附加到所需的表单。

  2. 在离开页面之前,在当前URL附加坐标。您可以使用history.pushState执行此操作。当您到达表单时,搜索您的条目的历史记录并从URL中获取坐标。

  3. 使用坐标设置一个cookie,然后将它们放回第二页。

  4. 异步加载一个asp文件,该文件设置一个包含coords的会话。然后通过检查会话来获取它们。

  5. 将coords置于隐藏的POST表单中,并在按下确认按钮时让用户实际提交表单。

  6. 或者根本不更改页面。您可以将两个页面合二为一。将主体分成两部分,或者将每个部分显示为提交必要数据的步骤。