将JavaScript变量发送到另一个页面,以便与表单一起提交

Send a JavaScript Variable to another page to be submitted with a form

本文关键字:表单 提交 一起 变量 JavaScript 另一个      更新时间:2023-09-26

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

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

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

脚本在网站中。Master在标题中。

创建一个表单并将其发送到下一页是最简单的方法吗?

谷歌地图页面:

<%@ 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>

您可以通过应用几种方法来实现这一点。

  1. 用户确认位置后,执行类似的操作

    var lat = position.coords.latitude, long = position.coords.longitude;
    window.location = "sitemaster2.aspx?latitude=" + lat + "&longitude=" + long;
    

    这样,你就可以在第二页访问这些坐标,并将它们附加到所需的表格中

  2. 在离开页面之前,将当前URL的坐标追加到后面。使用history.pushState可以做到这一点。当你到达表单时,在历史记录中搜索你的条目,并从URL中获取坐标。

  3. 用coords设置一个cookie,并将它们放回第二页。

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

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

或者根本不更改页面。你可以把两页都放在一页里。将身体一分为二,并交替显示每个部分,作为提交必要数据的一个步骤。

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

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