我使用javascript和回调函数的经验有限,我遇到了问题。我想使用第三方API获取一些信息,然后将其传递给我的CakePHP控制器,以便将数据存储到db表中。
这是我的功能:
window.onload = function()
{
geocoder = new google.maps.Geocoder();
document.getElementById('myForm').onsubmit = function()
{
var address = document.getElementById('target');
geocoder.geocode(
{'address': address.value},
function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
address.value = results[0].formatted_address;
alert("Inside " + address.value);
}
else
{
alert('Geocode was not successful for the following reason: ' + status);
}
});
alert("Outside " + address.value);
};
}
我已经内置了两个警报来掌握正在发生的事情。 "外面"警报首先显示,显示用户编写的地址;之后"内部" alert显示我所关注的地址,但不幸的是,当数据到达我的控制器时,它就消失了。
那么......我该如何解决这个问题呢?地址已经是一个对象,我读到了关于在回调中做所有事情的建议,但在这种情况下我不知道如何做到这一点?
谢谢!