Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 保存用户输入&;来自当前位置的位置Google maps API_Javascript_Php_Mysql_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 保存用户输入&;来自当前位置的位置Google maps API

Javascript 保存用户输入&;来自当前位置的位置Google maps API,javascript,php,mysql,google-maps,google-maps-api-3,Javascript,Php,Mysql,Google Maps,Google Maps Api 3,下面的代码最初是GoogleMapsAPI,用于将用户定义的数据保存到数据库中,但我对其进行了调整,以便在用户位置标记中加载表单。现在,save函数没有任何帮助。请帮忙 登记成为放债人 单元格: 业务名称: 抵押品:+ 笔记本电脑,电话,电视。 工资担保贷款 公开谈判 可用金额+ 小于K3000 超过K3000 您已在此位置注册为放债人。 var映射; var标记; var信息窗口; var消息窗口; 函数initMap(){ var赞比亚={lat:-15.376085,液化天然气:28.36

下面的代码最初是GoogleMapsAPI,用于将用户定义的数据保存到数据库中,但我对其进行了调整,以便在用户位置标记中加载表单。现在,save函数没有任何帮助。请帮忙

登记成为放债人

单元格: 业务
名称: 抵押品:+ 笔记本电脑,电话,电视。 工资担保贷款 公开谈判 可用金额
+ 小于K3000 超过K3000
您已在此位置注册为放债人。
var映射;
var标记;
var信息窗口;
var消息窗口;
函数initMap(){
var赞比亚={lat:-15.376085,液化天然气:28.366237};
map=new google.maps.map(document.getElementById('map'){
中心:赞比亚,
缩放:7
});
var infoWindow=new google.maps.infoWindow;
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
var pos={
纬度:位置坐标纬度,
lng:position.coords.longitude
};
信息窗口。设置位置(pos);
setContent(document.getElementById('form');
打开(地图);
地图设置中心(pos);
},函数(){
handleLocationError(true,infoWindow,map.getCenter());
});
}否则{
//浏览器不支持地理位置
handleLocationError(false,infoWindow,map.getCenter());
}
}
功能手柄位置错误(浏览器具有地理位置、信息窗口、pos){
信息窗口。设置位置(pos);
infoWindow.setContent(browserHasGeolocation?
“我们似乎找不到你,我的朋友。”
“您的浏览器不支持地理位置。”);
打开(地图);
}
函数saveData(){
var name=escape(document.getElementById('name').value);
var address=escape(document.getElementById('address').value);
var collateral=document.getElementById(“抵押品”).value;
var type=document.getElementById('type')。值;
var latlng=getCurrentPosition(位置);
var url='phpsqlinfo_addrow.php?name='+name+'&address='+address+'&collateral='+collateral+
“&type=”+type+”&lat=”+latlng.lat()+”&lng=”+latlng.lng();
下载url(url、函数(数据、响应代码){

如果(responseCode==200&&data.length我试图复制您的确切问题,但失败了。因此,我所做的是稍微修改您的代码,以便进一步调查

根据我的调查,您的代码中有几行似乎不起作用

类似于这一行:
infoWindow.setContent(document.getElementById('form');
。我相信这一行不会按照您所期望的方式工作。我更愿意建议的是,创建一个js变量,精确地包含html标记表单元素,并将其设置为的内容

你可以查看下面的代码,看看我在说什么:

var template = '<form>';
template += '<input id="name" type="text" placeholder="name" /><br/>';
template += '<input id="address" type="text" placeholder="address" /><br/>';
template += '<input id="collateral" type="text" placeholder="collateral" /><br/>';
template += '<input id="type" type="text" placeholder="type" /><br/>';
template += '<button onclick="saveData('+position.coords.latitude+','+position.coords.longitude+');">Add my location</button>';
template += '</form>';
infoWindow.setContent(template);
var模板=”;
模板+='
'; 模板+='
'; 模板+='
'; 模板+='
'; 模板+='添加我的位置'; 模板+=''; infoWindow.setContent(模板);
您还会注意到,我已将'saveData()'函数附加为我们创建的按钮中的onclick事件

我还修改了saveData()函数。如您所见,它接受两个参数:latlng。这些参数将替换包含未定义的getCurrentPosition()的latlng功能。如果您指的是方法,恐怕这不是正确的实现方法

下面是新的saveData()函数的外观:

function saveData(lat,lng) {     
    var pos = {
        lat : lat,
        lng : lng
    }
    var name = escape(document.getElementById('name').value);
    var address = escape(document.getElementById('address').value);
    var collateral = document.getElementById('collateral').value;
    var type = document.getElementById('type').value;
    var url = 'phpsqlinfo_addrow.php?name=' + name + '&address=' + address + '&collateral=' + collateral + 
              '&type=' + type + '&lat=' + pos.lat + '&lng=' + pos.lng;
    downloadUrl(url, function(data, responseCode) {

      if (responseCode == 200 && data.length <= 1) {
        infowindow.close();
        messagewindow.open(map, marker);
      }
    });
    //console.log(url);
}
功能保存数据(lat,lng){
var pos={
拉特:拉特,
液化天然气:液化天然气
}
var name=escape(document.getElementById('name').value);
var address=escape(document.getElementById('address').value);
var collateral=document.getElementById(“抵押品”).value;
var type=document.getElementById('type')。值;
var url='phpsqlinfo_addrow.php?name='+name+'&address='+address+'&collateral='+collateral+
“&type=”+type+”&lat=”+pos.lat+”&lng=”+pos.lng;
下载url(url、函数(数据、响应代码){

如果(responseCode==200&&data.length问题最有可能发生在服务器端,因此我建议查看那里的日志以了解请求未被接受的原因。我最初的猜测是,您可能需要转义lat/lng组件,因为它们包含一个点。此外,我没有看到
getPosition
的代码,我强烈建议t建议您编辑发布的代码,使其不包含您的Google API密钥。它应该是getCurrentPosition。但它仍然不起作用。感谢您指出它不包含我的密钥。还有一件事,messagewindow.open(map,marker)不起作用。通知用户信息已成功提交。
function saveData(lat,lng) {     
    var pos = {
        lat : lat,
        lng : lng
    }
    var name = escape(document.getElementById('name').value);
    var address = escape(document.getElementById('address').value);
    var collateral = document.getElementById('collateral').value;
    var type = document.getElementById('type').value;
    var url = 'phpsqlinfo_addrow.php?name=' + name + '&address=' + address + '&collateral=' + collateral + 
              '&type=' + type + '&lat=' + pos.lat + '&lng=' + pos.lng;
    downloadUrl(url, function(data, responseCode) {

      if (responseCode == 200 && data.length <= 1) {
        infowindow.close();
        messagewindow.open(map, marker);
      }
    });
    //console.log(url);
}