如何通过点击事件在数据库中插入纬度和经度? - javascript

使用ASP。我正在尝试将用户的位置(纬度,经度)存储到数据库中。这带来了问题:

我想通过单击按钮来获取谷歌地图的经度和纬度值,我在数据库中得到0值。

而且我也得到这个错误

  cmd1中未处理的类型系统数据sqlclient-sqlexception发生在系统数据dll中。线

这是我第一次尝试的示例代码:

<html xmlns="http://www.w3.org/1999/xhtml"> 
   <head id="Head1" runat="server">
   <title></title>
</head>
<body>
   <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
   <script type="text/javascript">
       var long = 0;
       var lat = 0;
       window.onload = function () {
           var mapOptions = {
               center: new google.maps.LatLng(18.9300, 72.8200),
               zoom: 14,
               mapTypeId: google.maps.MapTypeId.ROADMAP
           };
           var infoWindow = new google.maps.InfoWindow();
           var latlngbounds = new google.maps.LatLngBounds();
           var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
           google.maps.event.addListener(map, 'click', function (e) {
               long = e.latLng.lng();
               lat = e.latLng.lat();
               document.getElementById("lat").value = lat;
               document.getElementById("lng").value = long;
               alert("Latitude: " + lat + "\r\nLongitude: " + long);
           });
       }
   </script>

<form id="myForm" runat="server">
   <div id="dvMap" style="width: 300px; height: 300px">
   </div>
   <asp:HiddenField ID="lat" runat="server" />
   <asp:HiddenField ID="lng" runat="server" />
   <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

</form>
</body>

下面是.aspx代码隐藏文件。在按钮的Click事件期间,我们将经度和纬度保存到数据库中:

  protected void Button1_Click(object sender, EventArgs e)
    {

         Decimal latitude = Convert.ToDecimal(lat.Value);
        Decimal longitude = Convert.ToDecimal(lng.Value);
            string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            SqlConnection con = new SqlConnection(constr);


        string query1 = "insert into Courses(longi,lati) values (@lati, @longi)";

        SqlCommand cmd1 = new SqlCommand(query1, con);
        cmd1.Parameters.AddWithValue("@lati", latitude);
        cmd1.Parameters.AddWithValue("@longi", longitude);

                con.Open();

                cmd1.ExecuteNonQuery();


                con.Close();    
    }

参考方案

您可能无法在隐藏字段中获取值,因此null值将进入数据库,这会导致错误。而且您没有在隐藏字段中获取值,因为您已将这些runat="server"设置为ID,所以更改了Id,并且正在通过Id在javascript中设置值,但ClientIDMode已更改。因此,您需要像这样将隐藏字段的static属性设置为

<asp:HiddenField ID="lat"  ClientIDMode="Static" runat="server" />
<asp:HiddenField ID="lng"  ClientIDMode="Static" runat="server" />

在提交时在表单操作中获取变量丢失 - javascript

            当表单由onchange事件提交时,它不会保留get变量view。任何想法为什么会发生这种情况?提交后,这是它进入的网址,index?month=February&year=2014<form action="index?view=list" class="pure-form pure-fo…

选择后显示输入元素 - javascript

我有一个表格,其中取决于用户的选择,输入元素是否可见。实际上,用户正在以另一种形式设置已定义的合作伙伴类型,并且如果选中该元素,则允许在该类型的合作伙伴上可见的元素类型1将显示以下元素:<input type="text" id="partner" name="partner" class=&…

JavaScript将PHP中的字符串和整数传递给函数 - javascript

我正在尝试将字符串和整数都传递到同一函数中,但是引号引起了问题。我发现错误出在echo $q->info部分,我必须在此代码上使用双引号。有人可以帮我写这个$q->info,但不能获得真正的价值吗?到目前为止,我的代码是<td><a href="javascript:add(<?php echo $q->i…

淘汰赛在金字塔中的行为不正确 - javascript

我正在使用Pyramid构建一个Webapp,但是Knockout的行为有所不同。我有一个表格: <div data-bind="with: $root.itemToAdd" style="display: none;"> <form data-bind="submit: $root.add…

Ajax表单未获得结果 - javascript

我有一个带有搜索功能的主页。从主页搜索可以正常工作,但是当我尝试使用ajax表单(在url.com/search?id=biology上)再次搜索时,我被重定向到404页面,提示未找到/Search。主页上的表格:@using (Html.BeginForm("Index", "Search", new { Retur…