Передайте переменную Javascript GetElementById в Ajax - PullRequest
0 голосов
/ 13 декабря 2018

Как передать переменную Javascript в Ajax, а затем опубликовать ее в php.Код Javacript и код 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>

Ответы [ 5 ]

0 голосов
/ 13 декабря 2018

Вы передаете неопределенные переменные.Пожалуйста, попробуйте это:

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

    // your logic

});
0 голосов
/ 13 декабря 2018

Не уверен, о чем ты спрашиваешь, но просто

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

0 голосов
/ 13 декабря 2018

вы отправили неверные данные в метод AJAX POST

data: {'широта': широта, 'долгота': долгота}

где в качестве отправляющей AJAX

данные: 'широта =' + широта + '& долгота =' + долгота,

или вы можете добавить их по адресу URL

url: 'MyDashboard.php? latitude =' + широта + '& долгота= '+ longitude

это также будет работать, но вместо php нужно использовать $ _GET $ _POST

0 голосов
/ 13 декабря 2018

Проблема в том, что переменная latitude и longitude не существует ..

Попробуйте следующий код:

<!-- 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>

и получите переменную на стороне PHP, вызвав эти переменные$_POST['latitude'] и $_POST['longitude']

0 голосов
/ 13 декабря 2018

Вы должны передать данные как объект типа data: {latitude: latitude, longitude:longitude }

<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>

и получить код php, например $_POST['latitude'] и $_POST['longitude']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...