将Javascript变量保存到Ruby中
我使用HTML5地理位置代码()来获取用户的位置将Javascript变量保存到Ruby中,javascript,ruby,html,Javascript,Ruby,Html,我使用HTML5地理位置代码()来获取用户的位置 ... function showPosition(position) { x.innerHTML="Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } </script> 。。。 功能显示位置(位置) { x、 innerHTML=“纬度:”+position.co
...
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
。。。
功能显示位置(位置)
{
x、 innerHTML=“纬度:”+position.coords.Latitude+
“
经度:”+position.coords.Longitude;
}
我想在ruby中创建一个变量,它保存position.coords.latitude和position.coords.longitude的值,有人知道捕获这些信息并将其保存为ruby变量的最有效方法吗 请求在高级别上有以下步骤:
2
中,如何使变量只出现在3
中,这是不可能的
另一种方法是简单地添加一个ajax调用(即,重复步骤1到3,但不是“浏览器”读取“Javascript代码”),该调用将此信息发送到服务器以保存在数据库或其他文件中,但您仍必须使用Javascript编程逻辑。请求的主要步骤如下:
2
中,如何使变量只出现在3
中,这是不可能的
另一种方法是简单地添加一个ajax调用(即,重复步骤1到3,但不是“浏览器”读取“Javascript代码”),该调用将此信息发送到服务器以保存在数据库或其他文件中,但您仍然需要使用Javascript编程逻辑
有人知道获取这些信息的最有效方法吗
并将其另存为ruby变量
你对有效性的衡量是什么?数据到达服务器时不会丢失一个随机数字
发出jQuery ajax请求最简单:
纬度和经度可以从params散列在操作中检索:
lat = params[:lat]
lon = params[:lon]
有人知道获取这些信息的最有效方法吗
并将其另存为ruby变量
你对有效性的衡量是什么?数据到达服务器时不会丢失一个随机数字
发出jQuery ajax请求最简单:
纬度和经度可以从params散列在操作中检索:
lat = params[:lat]
lon = params[:lon]
有两种方法可以做到这一点-
var latitude = position.coords.latitude;
var longitude = position.coords.latitude;
$.ajax({
url: "/<some_route>?latitude="+latitude+"&longitude="+longitude,
success: function(data) {
// do something here like for example replace some arbitrary container's html with the stuff returned by server.
$("#container").html(data);
}
});
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.cookie = "cl=" + latitude + "&" + longitude + ";";
在你的控制器中,你可以访问这个-
current_location = cookies[:cl]
unless current_location.nil?
latitude = current_location.split('&')[0]
longitude = current_location.split('&')[1]
end
您应该选择选项1,因为cookies随每个HTTP请求一起发送到服务器,此外,您可能需要通知用户使用了跟踪技术。有两种方法可以做到这一点-
var latitude = position.coords.latitude;
var longitude = position.coords.latitude;
$.ajax({
url: "/<some_route>?latitude="+latitude+"&longitude="+longitude,
success: function(data) {
// do something here like for example replace some arbitrary container's html with the stuff returned by server.
$("#container").html(data);
}
});
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.cookie = "cl=" + latitude + "&" + longitude + ";";
在你的控制器中,你可以访问这个-
current_location = cookies[:cl]
unless current_location.nil?
latitude = current_location.split('&')[0]
longitude = current_location.split('&')[1]
end
您应该选择选项1,因为cookies随每个HTTP请求一起发送到服务器,此外,您可能需要通知用户使用了跟踪技术。使用Ajax?JS在客户端执行;在服务器上安装Ruby。您希望如何使用Ruby中的值?您是否希望在服务器端对其进行操作?保存到数据库?这是用于rails应用程序的吗?我最终希望将用户的位置与保存在数据库中的不同位置进行比较。我认为实现这一点的最佳方法是将值保存在params散列中,但我不能完全确定要将值保存在params散列中,它必须通过Ajax或普通用户发起的请求提交。在不知道您真正在做什么的情况下,很难回答这个问题,但是任何标准的HTTP机制都可以工作。使用Ajax吗?JS在客户端执行;在服务器上安装Ruby。您希望如何使用Ruby中的值?您是否希望在服务器端对其进行操作?保存到数据库?这是用于rails应用程序的吗?我最终希望将用户的位置与保存在数据库中的不同位置进行比较。我认为实现这一点的最佳方法是将值保存在params散列中,但我不能完全确定要将值保存在params散列中,它必须通过Ajax或普通用户发起的请求提交。在不知道您真正在做什么的情况下,很难回答,但是任何标准的HTTP机制都可以工作。谢谢!我使用了你的第二种策略,它正是我所需要的。谢谢!我使用了你的第二种策略,它正是我所需要的