将Javascript GetElementById变量传递给Ajax

将Javascript GetElementById变量传递给Ajax,javascript,ajax,google-maps,Javascript,Ajax,Google Maps,如何将Javascript变量传递给Ajax,然后将其发布到php。Javascript代码和PHP代码工作正常,但问题是将Javascript变量传递给Ajax以发布到PHP。我的代码在下面 <!-- User Location --> <script> window.onload = function() { var startPos; var geoSuccess = function(position) { startPos =

如何将Javascript变量传递给Ajax,然后将其发布到php。Javascript代码和PHP代码工作正常,但问题是将Javascript变量传递给Ajax以发布到PHP。我的代码在下面

<!-- User Location --> 
<script>
window.onload = function() {
    var startPos;

    var geoSuccess = function(position) {
        startPos = position;
        document.getElementById('startLat').innerHTML = startPos.coords.latitude;
        document.getElementById('startLon').innerHTML = startPos.coords.longitude; 

        $.ajax({
            type: 'POST', 
            url: 'MyDashboard.php', 
            data: 'latitude='+latitude+'&longitude='+longitude, 
            success: function(msg) { 
                if (msg) { 
                    $("#location").html(msg); 
                } else { 
                    $("#location").html('Not Available'); 
                } 
            } 
        });
    };

    navigator.geolocation.getCurrentPosition(geoSuccess);
};
</script>

window.onload=函数(){
var startPos;
var geoSuccess=函数(位置){
startPos=位置;
document.getElementById('startAt').innerHTML=startPos.coords.latitude;
document.getElementById('starton').innerHTML=startPos.coords.longitude;
$.ajax({
键入:“POST”,
url:'MyDashboard.php',
数据:“纬度=”+纬度+”&经度=”+经度,
成功:函数(msg){
如果(msg){
$(“#位置”).html(msg);
}否则{
$(“#位置”).html('不可用');
} 
} 
});
};
navigator.geolocation.getCurrentPosition(geosucces);
};

您应该将数据作为对象传递,如
数据:{纬度:纬度,经度:经度}

<script>
  window.onload = function() {
    var startPos;
    var geoSuccess = function(position) {
      startPos = position;
      document.getElementById('startLat').innerHTML = startPos.coords.latitude;
      document.getElementById('startLon').innerHTML = startPos.coords.longitude;

      $.ajax({
        type: 'POST',
        url: 'MyDashboard.php',
        data: {latitude: startPos.coords.latitude, longitude: startPos.coords.longitude },
        success: function(msg) {

          if (msg) {
            $("#location").html(msg);
          } else {
            $("#location").html('Not Available');
          }
        }

      });
    };
    navigator.geolocation.getCurrentPosition(geoSuccess);
  };
</script>

window.onload=函数(){
var startPos;
var geoSuccess=函数(位置){
startPos=位置;
document.getElementById('startAt').innerHTML=startPos.coords.latitude;
document.getElementById('starton').innerHTML=startPos.coords.longitude;
$.ajax({
键入:“POST”,
url:'MyDashboard.php',
数据:{纬度:startPos.coords.lation,经度:startPos.coords.longitude},
成功:功能(msg){
如果(味精){
$(“#位置”).html(msg);
}否则{
$(“#位置”).html('不可用');
}
}
});
};
navigator.geolocation.getCurrentPosition(geosucces);
};

然后输入php代码,比如
$\u POST['latitude']
$\u POST['longitude']

将错误的数据发送到AJAX POST方法

数据:{“纬度”:纬度,“经度”:经度}

在哪里发送AJAX

数据:“纬度=”+纬度+”&经度=”+经度

或者您可以在URL中添加它们

url:'MyDashboard.php?纬度='+纬度+'&经度='+经度


这也会起作用,但是需要在php中使用$\u GET而不是$\u POST

问题在于
纬度
经度
变量不存在

请尝试以下代码:

<!-- User Location -->
<script>
  window.onload = function() {
    var geoSuccess = function(position) {
      document.getElementById('startLat').innerHTML = position.coords.latitude;
      document.getElementById('startLon').innerHTML = position.coords.longitude;

      $.ajax({
        type: 'POST',
        url: 'MyDashboard.php',
        data: 'latitude=' + position.coords.latitude+ '&longitude=' + position.coords.latitude,
        success: function(msg) {

          if (msg) {
            $("#location").html(msg);
          } else {
            $("#location").html('Not Available');
          }
        }

      });
    };
    navigator.geolocation.getCurrentPosition(geoSuccess);
  };
</script>

window.onload=函数(){
var geoSuccess=函数(位置){
document.getElementById('starttat').innerHTML=position.coords.latitude;
document.getElementById('starton').innerHTML=position.coords.longitude;
$.ajax({
键入:“POST”,
url:'MyDashboard.php',
数据:“纬度=”+位置.坐标.纬度+”&经度=”+位置.坐标.纬度,
成功:功能(msg){
如果(味精){
$(“#位置”).html(msg);
}否则{
$(“#位置”).html('不可用');
}
}
});
};
navigator.geolocation.getCurrentPosition(geosucces);
};

通过调用这些变量
$\u POST['latitude']
$\u POST['longitude']

来检索PHP端的变量 但只是

data:`latitude=${startPos.coords.latitude}和longitude=${startPos.coords.longitude}`

您正在传递未定义的变量。请试试这个:

$.ajax({
    type: 'POST',
    url: 'MyDashboard.php',
    data: {
      latitude: startPos.coords.latitude,
      longitude: startPos.coords.longitude
    },
    success: function(msg) {

    // your logic

});

您尚未为
纬度
经度
定义变量。检查您的浏览器开发工具控制台是否存在错误以及如何执行?这就是我想要的actualy@AlbertN.Ntshalintshali当您设置innerHTML时,您得到了正确的结果……将字符串传递给
数据
本身并没有什么错误。是的,一个对象更简单,但是
$。ajax
将处理这两个问题