我正致力于构建一个简单的表单,该表单将作为电子邮件发送,并将使用Google的API作为地址字段。我已经阅读了有关使用自动完成部分的信息,其中用户开始输入地址并推荐一个地址。因此,如果我开始输入12 West,它会建议并允许我选择12 Westmount Drive,Cayley,n2n 5h8,Alberta,Canada。
我想知道后端是否有可能将此信息拆分为街道,城市,邮政编码,省份和国家/地区。这样我就可以在电子邮件中包含完整地址,然后在单独的段落中使用街道和城市信息。
答案 0 :(得分:2)
从Google返回的地址中提取特定字段绝对是可能的。
假设您使用Places Autocomplete,您将可以访问PlaceResult个对象。 PlaceResult对象将具有一个名为address_components
的属性,该属性是GeocoderAddressComponent个对象的数组。
每个GeocoderAddressComponent都有一个types
数组,其中包含组件的名称,如果有多种描述方式,则有多个名称。可以在here找到示例address_components
对象。
您可以遍历address_components
数组中的所有元素,查找名称route
和sublocality
,这将分别为街道和城市提供单独的值。
答案 1 :(得分:0)
/ *我假设您希望在填写表格后发送电子邮件是正确的吗?
我想保留此表单信息将信息收集到数据库中以备将来使用。然后,您可以将信息查询到发送表单。
以下是可能对您有用的代码?* /
for(var i = 0; i< place.address_components.length; i ++){
var addressType = place.address_components[i].types[0];
if (componentForm[addressType]) {
var val = place.address_components[i][componentForm[addressType]];
document.getElementById(addressType).value = val;
your_obj[addresType] = val;
}
}
//之后你可以在你喜欢的地方使用它: var postal_code = your_obj [' postal_code'];
//首先检查console.log()以了解your_obj中的所有项目 的console.log(your_obj);