在Rails中发布表单时使用HTML5地理位置

第三层

我要在此处进行的操作是获取用户(浏览器)的地理位置,使用隐藏字段来保存经度和纬度,一旦表单发布(上传了图片),纬度和经度将显示在通知中(将稍后在模型中使用它们来存储它们)。我在这里遇到的问题是,在发布之前,我必须刷新几次才能得到Lat,Long。否则,表单将同时提交两个值。这是我正在使用的相关代码:

app / assets / javascript / html5geolocatio.js

$(document).ready(function() {

  navigator.geolocation.getCurrentPosition(
          onSuccess,
          onError, {
              enableHighAccuracy: true,
              timeout: 20000,
              maximumAge: 120000
          }
  );


function onSuccess(position) {
    myPosition[0] = position.coords.latitude;
    myPosition[1] = position.coords.longitude;
    document.getElementById("image_lon").value = position.coords.longitude;
    document.getElementById("image_lat").value = position.coords.latitude;
}

 function onError(err) {
    var message;

    switch (err.code) {
    case 0:
      message = 'Unknown error: ' + err.message;
      break;
    case 1:
      message = 'You denied permission to retrieve a position.';
      break;
    case 2:
      message = 'The browser was unable to determine a position: ' + error.message;
      break;
    case 3:
      message = 'The browser timed out before retrieving the position.';
      break;
    }
 }

});

图像控制器:

def create
    @photo = current_user.images.build(image_params)
    if @photo.save
        flash[:notice] = "Photo has been uploaded" + params[:image][:lat]+ ','  + params[:image][:lon] 
        redirect_to root_url
    else
        render 'static_pages/home'

    end
end

上载表格:

<%= form_for @photo do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.file_field :image %>
<%= f.hidden_field :lon %>
<%= f.hidden_field :lat %>
<%= f.submit "Upload Photo" %>
<% end %>

另外,如果有更好的方法可以解决此问题,请告诉我。提前致谢。

洛伦佐·西尼西(Lorenzo Sinisi)

这是有关如何将JavaScript变量传递到Rails应用程序的示例:https : //github.com/lorenzosinisi/javascript-variable-to-rails-controller

您可以将变量写入Cookie,然后从控制器进行访问,如下所示:

在视图中(使用javascript):

 document.cookie = "latitudine="+latitude;
 document.cookie = "longitudine="+longitude;

并在控制器中:

@latitudine_full = cookies[:latitudine].nil? ? '0.00' : cookies[:latitudine]
@longitudine_full = cookies[:longitudine].nil? ? '0.00' : cookies[:longitudine]

重新加载页面后,这将起作用。

如果您要在发布后清除/删除Cookie,可以使用javascript

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用html5地理位置api创建地理围栏

来自分类Dev

HTML5地理位置与Google Maps地理位置api

来自分类Dev

使用HTML5地理位置在这里映射

来自分类Dev

如何使用HTML5地理位置javascript使用地理位置(用户的当前位置)初始化Google Maps API

来自分类Dev

HTML5地理位置,点击时将经/纬度传递给PHP变量

来自分类Dev

Javascript和HTML5地理位置-如何存储位置?

来自分类Dev

如何在C#应用程序中使用HTML5地理位置

来自分类Dev

HTML5地理位置watchPosition仅被调用一次

来自分类Dev

HTML5地理位置不等待用户输入

来自分类Dev

各种浏览器中的HTML5地理位置API

来自分类Dev

HTML5地理位置不正确

来自分类Dev

HTML5地理位置不同步

来自分类Dev

需要HTML5地理位置+ javascript帮助

来自分类Dev

Google Maps API中的HTML5地理位置

来自分类Dev

Symfony2:IvoryGoogleMapBundle中的HTML5地理位置API

来自分类Dev

HTML5地理位置不正确

来自分类Dev

HTML5地理位置跟踪未返回正确的坐标

来自分类Dev

html5地理位置是否存在“ GPS状态已更改”事件?

来自分类Dev

将HTML5地理位置结果发送回Node / Express Server

来自分类Dev

无法获取html5地理位置坐标

来自分类Dev

错误处理不适用于Chrome中的HTML5地理位置

来自分类Dev

HTML5地理位置:如何在成功或错误回调后将lat和long值传递给AJAX调用

来自分类Dev

为什么HTML5地理位置在不同的Web浏览器中具有不一致的错误行为

来自分类Dev

实时检索地理位置(HTML5)

来自分类Dev

在HTML5 Web Worker中使用地理位置

来自分类Dev

如何在功能之外使用HTML5访问经纬度地理位置

来自分类Dev

使用html5中的地理位置在Google地图中显示坐标列表

来自分类Dev

如何使用html / html5中的用户输入获取完整的地理位置详细信息?

来自分类Dev

关闭Openlayers 3地理位置

Related 相关文章

  1. 1

    使用html5地理位置api创建地理围栏

  2. 2

    HTML5地理位置与Google Maps地理位置api

  3. 3

    使用HTML5地理位置在这里映射

  4. 4

    如何使用HTML5地理位置javascript使用地理位置(用户的当前位置)初始化Google Maps API

  5. 5

    HTML5地理位置,点击时将经/纬度传递给PHP变量

  6. 6

    Javascript和HTML5地理位置-如何存储位置?

  7. 7

    如何在C#应用程序中使用HTML5地理位置

  8. 8

    HTML5地理位置watchPosition仅被调用一次

  9. 9

    HTML5地理位置不等待用户输入

  10. 10

    各种浏览器中的HTML5地理位置API

  11. 11

    HTML5地理位置不正确

  12. 12

    HTML5地理位置不同步

  13. 13

    需要HTML5地理位置+ javascript帮助

  14. 14

    Google Maps API中的HTML5地理位置

  15. 15

    Symfony2:IvoryGoogleMapBundle中的HTML5地理位置API

  16. 16

    HTML5地理位置不正确

  17. 17

    HTML5地理位置跟踪未返回正确的坐标

  18. 18

    html5地理位置是否存在“ GPS状态已更改”事件?

  19. 19

    将HTML5地理位置结果发送回Node / Express Server

  20. 20

    无法获取html5地理位置坐标

  21. 21

    错误处理不适用于Chrome中的HTML5地理位置

  22. 22

    HTML5地理位置:如何在成功或错误回调后将lat和long值传递给AJAX调用

  23. 23

    为什么HTML5地理位置在不同的Web浏览器中具有不一致的错误行为

  24. 24

    实时检索地理位置(HTML5)

  25. 25

    在HTML5 Web Worker中使用地理位置

  26. 26

    如何在功能之外使用HTML5访问经纬度地理位置

  27. 27

    使用html5中的地理位置在Google地图中显示坐标列表

  28. 28

    如何使用html / html5中的用户输入获取完整的地理位置详细信息?

  29. 29

    关闭Openlayers 3地理位置

热门标签

归档