通过表单提交用户位置

时间:2016-07-06 10:28:32

标签: javascript php forms

你好我使用HTML5地理位置,用户提交表格后我想存储他的经度和纬度但是出现了问题

我做了一个onclick =""提交按钮上的事件,当按下按钮时,js将获得协调并将它们放入表单中的隐藏字段,表单将被发送到php但是,每当我提交表单时,小弹出窗口就会出现并且它要求获得该位置的许可,它可能因为刷新页面的PHP而暂时消失,我该怎么办?正如我已经说过,当你单击提交表单按钮时,js将被触发,并且在接受权限后将要求许可,隐藏字段将填充协调数据,然后表单将被发送到服务器但是,在我按下之后按钮然后弹出关于允许该位置将弹出一秒钟,并立即消失,页面将刷新没有结果,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

解决此问题的一种简单方法是运行检测位置的JS代码,并在表单首次加载页面时请求权限,而不是在提交

您的问题是,您尝试在表单提交时同时执行javascript。除非您覆盖默认行为,否则无论在onclick事件中运行什么脚本,表单都会提交,并且不会等待它们。

另一种方法是覆盖默认的提交行为。假设您已加载jQuery,请按以下方式处理单击:

$(function() {
  $("#mySubmitButton").click(function(event) {
    event.preventDefault(); //stops the form from submitting
    //here write the code which asks for the location and puts it in the hidden fields
   $("#myForm").submit(); //only now do we submit the form, manually.
  });
});

答案 1 :(得分:-1)

*自Chrome 50起,Geolocation API仅适用于HTTPS等安全上下文。如果 您的站点托管在非安全源(例如HTTP)上以获取用户的请求 位置将不再有效。