gpt4 book ai didi

javascript - Ruby on Rails : how to submit a hidden form automatically every time I refresh a page (no buttons)

转载 作者:行者123 更新时间:2023-12-03 08:57:10 25 4
gpt4 key购买 nike

感谢所有帮助我的人!

目前,每次用户进入特定页面时,我都会获取用户的坐标,并且我正在尝试存储这些坐标来更新用户模型,其中包含“纬度”和“经度”字段。目前,如果用户按下“我在这里”按钮,它就可以工作,我正在尝试自动提交表单并隐藏按钮,但我没有成功。需要明确的是,我希望每次有人进入此特定页面时,他的用户模型都会使用新的“纬度”和“经度”进行更新,而无需他执行任何操作或看到任何内容。

*$("#new_coordinates").submit()(其中“新坐标”是表单 ID)当前不起作用,这就是带有按钮的 f.submit 仍然存在的原因。

这是我的代码

<p id="geoloc"></p>
<script>
var x = document.getElementById("geoloc");

function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getCoordinates);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}

function getCoordinates(position) {
var new_latitude = position.coords.latitude;
var new_longitude = position.coords.longitude;

$(document).ready(function () {
$("#latitude_field").val(new_latitude);
$("#longitude_field").val(new_longitude);
$("#new_coordinates").submit();


}
)
}

getLocation()


</script>

<%= form_for(current_user, :id=> "new_coordinates") do |f| %>
<%=f.hidden_field :latitude ,:id=> "latitude_field" %>
<%=f.hidden_field :longitude ,:id=> "longitude_field" %>
<%=f.submit "I'm here", class: "btn btn-small btn-primary jsbuttons"%>

<%end%>

最佳答案

您可以对 Controller 进行ajax调用来更新用户数据。假设我想在页面加载时更新用户数据,你可以使用jquery方法 .ready

$(document).ready(function(){
$.ajax({url: "/update_user", type: "POST", data: {name: "xxx", id: 5});

});

如果您想使用 JavaScript,请使用

        <body>
HTML Content
<script>
(function() {
$.ajax({url: "/update_user", type: "POST", data: {name: "xxx", id: 5});
})();
</script>
</body>

此外,您还必须在 paths.rb 中添加“/update_user”来处理到达 Controller 中相应操作的请求。

更新:

收到 Controller 中的值后

users_controller.rb

def update_user
#you receive all the data in params
end

使用参数来检索数据并相应地使用。 params 是一个哈希值,您可以从键访问数据。然后您可以根据需要将这些值直接传递给方法。如果您希望它在模型上只是为了访问,您可以使用 attr_accessor。阅读有关内容,但我认为您并不真正需要它。

只需读取操作中的参数并相应地传递值即可。

关于javascript - Ruby on Rails : how to submit a hidden form automatically every time I refresh a page (no buttons),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com