解决方案:无需查找PHP变量,只需阻止默认提交并在API调用中使用Javascript变量即可。

我正在尝试使用此替代方法来等待表单提交,然后再执行API调用。但是,第一次ajax推送不会导致$ _POST变量接收数据。网络分析表明正在发送变量。这里的第一个问题,所以提前致歉。

   $("#form").submit(function(evt) {

       evt.preventDefault();
       var inputAddress = $(this).find("input[type='text']").val();

       // Ajax form Submit
       $.ajax ({
           url:'index.php',
           method: 'POST',
           data:{inputAddress:inputAddress},
           success: function() {

                var add = '<?php echo ($_POST['inputAddress'])?>'; // BLANK?


                    // API call
               var apiResult = $.ajax ({
                   url: 'https://maps.googleapis.com/maps/api/geocode/json?address='+add+'&key=AIzaSyDcNLmq6E6K-bDefI-28E1qiqugS_-wnhI',
                   method: 'get',
                   success: function(data) {
                       window.console.log(data);
                           }
                  })
           }
        })
      })
   })

最佳答案

似乎在javascript上已经具有该变量,因此无需从$ _POST获取它。尝试使用这种方式,看看是否可行:

   $("#form").submit(function(evt) {

       evt.preventDefault();
       var inputAddress = $(this).find("input[type='text']").val();

       // Ajax form Submit
       $.ajax ({
           url:'index.php',
           method: 'POST',
           data:{inputAddress:inputAddress},
           success: function() {

                    // API call
               var apiResult = $.ajax ({
                   url: 'https://maps.googleapis.com/maps/api/geocode/json?address='+inputAddress+'&key=AIzaSyDcNLmq6E6K-bDefI-28E1qiqugS_-wnhI',
                   method: 'get',
                   success: function(data) {
                       window.console.log(data);
                           }
                  })
           }
        })
      })
   })


编辑:
同样,第一个请求也是不必要的,因此您可以将其删除:

   $("#form").submit(function(evt) {

       evt.preventDefault();
       var inputAddress = $(this).find("input[type='text']").val();

       // API call
       var apiResult = $.ajax ({
              url: 'https://maps.googleapis.com/maps/api/geocode/json?address='+inputAddress+'&key=AIzaSyDcNLmq6E6K-bDefI-28E1qiqugS_-wnhI',
              method: 'get',
              success: function(data) {
                  window.console.log(data);
              }
       })
   })

关于javascript - 在API调用AJAX之前等待表单提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47153143/

10-09 17:50