解决方案:无需查找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/