Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用RubyonRails将带有纬度和经度的标记保存到mysql数据库中_Javascript_Mysql_Ruby On Rails 3_Google Maps - Fatal编程技术网

Javascript 如何使用RubyonRails将带有纬度和经度的标记保存到mysql数据库中

Javascript 如何使用RubyonRails将带有纬度和经度的标记保存到mysql数据库中,javascript,mysql,ruby-on-rails-3,google-maps,Javascript,Mysql,Ruby On Rails 3,Google Maps,我将GoogleMapsAPIv3与RubyonRails3.1结合使用。我有以下型号: class Business < ActiveRecord::Base attr_accessible :business_name, :address, :city_id, :latitude, :longitude, :zipcode 我可以拖放一个标记,但仍然无法将新位置保存到数据库中(mysql 2.8.1)。我发现了一些javascript(参见va

我将GoogleMapsAPIv3与RubyonRails3.1结合使用。我有以下型号:

class Business < ActiveRecord::Base
  attr_accessible :business_name, :address, :city_id,
                  :latitude, :longitude, :zipcode
我可以拖放一个标记,但仍然无法将新位置保存到数据库中(mysql 2.8.1)。我发现了一些javascript(参见var latitude=marker.getPosition().lat();)周围的行),但由于我的javascript知识非常贫乏,我不知道如何在数据库中保存新的标记位置。理想情况下,我希望在我的信息窗口中有一个“保存”链接,该链接将确认将新的纬度和经度存储到数据库中


有人知道怎么做吗?非常感谢您的帮助

您可以将数据传输到ajax表单:

<%= form_for @marker, :remote => true, :html => { :multipart => true } do |f| %>
  <%= f.hidden_field :lat, :id => "lat" %>
  <%= f.hidden_field :lng, :id => "lng" %>
  <%= f.submit "save marker" %>
<% end %>
您现在必须在google.maps.event.addListener中调用此函数:

 google.maps.event.addListener(marker, 'click', function() {
   infowindow.open(map,marker);
   set_latlng_to_input(marker);
 });

 google.maps.event.addListener(marker, 'dragend', function() { 
   set_latlng_to_input(marker);
 }
var lat = $("#lat");
var lng = $("#lng");

var set_latlng_to_input = function(marker){
  lat.val(marker.getPosition().lat());
  lng.val(marker.getPosition().lng());
}
 google.maps.event.addListener(marker, 'click', function() {
   infowindow.open(map,marker);
   set_latlng_to_input(marker);
 });

 google.maps.event.addListener(marker, 'dragend', function() { 
   set_latlng_to_input(marker);
 }