【问题标题】:Pass Javascript GetElementById Variable to Ajax将 Javascript GetElementById 变量传递给 Ajax
【发布时间】:2018-12-13 13:48:34
【问题描述】:

如何将 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>

【问题讨论】:

  • 您还没有为latitude longitude 定义变量。检查您的浏览器开发工具控制台是否抛出错误
  • 怎么做?这就是我真正想要的
  • @AlbertN.Ntshalintshali 好吧,当您设置 innerHTML 时,您会得到正确的......

标签: javascript ajax google-maps


【解决方案1】:

不确定你在问什么 但只是

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

【讨论】:

    【解决方案2】:

    问题是latitudelongitude 变量不存在..

    试试下面的代码:

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

    并通过调用这些变量 $_POST['latitude']$_POST['longitude'] 在 PHP 端检索变量

    【讨论】:

      【解决方案3】:

      您应该将数据作为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>
      

      并进入像$_POST['latitude']$_POST['longitude']这样的php代码

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

          数据:{'纬度':纬度,'经度':经度}

          作为您发送 AJAX 的位置

          数据:'latitude=' + latitude + '&longitude=' + longitude,

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

          网址:'MyDashboard.php?latitude=' + 纬度 + '&longitude=' + 经度

          这也可以,但需要在 php 中使用 $_GET 而不是 $_POST

          【讨论】:

          • 将字符串传递给data 本质上没有错。是的,一个对象更容易,但$.ajax 会同时处理这两个
          猜你喜欢
          • 1970-01-01
          • 2014-09-05
          • 2014-04-15
          • 2011-09-02
          • 2013-03-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多