我有一个html表单,其中包含名称,经度和纬度文本字段。经度和纬度存储在javascript变量中。你知道如何将名称,经度和经度发布到服务器上,我的意思是通过网址吗?每次我提交表格时,经度和纬度都不会传入网址?谁能告诉我怎么做?
谢谢
这是我的javascript和html的代码:
if (navigator.geolocation) {
var geolocation = {};
geolocation.latitude = 0;
geolocation.longitude = 0;
navigator.geolocation.getCurrentPosition(function (p) {
geolocation.latitude = p.coords.latitude;
geolocation.longitude = p.coords.longitude;
}, function (error) {
alert("Failed to get GPS location");
});
} else {
alert("Failed to get GPS working");
}
function loc() {
document.getElementById("longitude").value = geolocation.latitude;
document.getElementById("latitude").value = geolocation.longitude;
}
HTML:
<form name="photo" method="post" action="url">
<label for="name">Name:</label>
<input type="text" name="name" id="Text1" value="" />
<label for="longitude">Longitude:</label>
<input type="text" name="longitude" id="longitude" />
<label for="latitude">Latitude:</label>
<input type="text" name="latitude" id="latitude" />
<label for="image">Image:</label>
<input type="text" name="image" id="image" />
<input type="submit" value="Submit" />
</form>
答案 0 :(得分:0)
您可以向表单中添加元素...
var myForm = document.getElementById('myForm');
var longitude = document.createElement('input');
longitude.name= 'longitude';
longitude.value = '100';
var latitude= document.createElement('input');
latitude.name= 'latitude';
latitude.value = '100';
myForm.appendChild(longitude);
myForm.appendChild(latitude);
答案 1 :(得分:0)
在表单的操作中,您需要提及要调用的servlet的名称。使用三个隐藏字段来存储值名称,经度和纬度。这可以使用
完成 document.getElementById('hiddenFieldId1').value=longitude;
document.getElementById('hiddenFieldId2').value=latitude;
document.getElementById('hiddenFieldId3').value=name;
可以使用request.getParameter('hiddenFieldId');
您需要在js中提交表单:
document.myform.submit();
geolocation
变量尚未设为全局变量,因此未在函数loc()
中定义。没有为geolocation.latitude
和geolocation.longitude
分配值。