我在Drupal 7网站上使用Maxmind.Com的GeoIP2(Omni)Web服务来根据访问者的IP提取地理数据。
我可以使用以下代码获取JSON文档:
<script type="text/javascript" src="//js.maxmind.com/js/apis/geoip2/v2.0/geoip2.js">
</script>
<script type="text/javascript">
var onSuccess = function(location){
console.log(
"Lookup successful:\n\n"
+ JSON.stringify(location.city.names.en, undefined, 4)
);
};
var onError = function(error){
alert(
"Error:\n\n"
+ JSON.stringify(error, undefined, 4)
);
};
geoip2.omni(onSuccess, onError);
</script>
其中一个返回值是访问者的城市名称。如何将返回的值用作查询字符串的一部分?
例如,如果'city.names.en' = 'Detroit'
,我怎么能使用&#34; Detroit&#34;作为从另一个文档,表格等检索数据(例如本地电话号码)的密钥?
最终目标是动态插入&#34; local&#34;电话号码进入&#34;联系我们&#34;基于访问者位置的部分。
答案 0 :(得分:0)
通常,您可以像这样格式化查询字符串:
http://mydomain.com/route?parameterName=value
对于您的示例,它可能如下所示:
http://mydomain.com/phoneNumbers/phoneNumber?city=Detroit
答案 1 :(得分:0)
可以通过两种方法来实现您想要做的事情。
<span id="contact"></span>
<span id="contact"></span>
<script type="text/javascript">
$(document).ready(function() {
geoip2.omni(function(data) {
$.ajax({
type: "GET",
url: "your/url/to/contact/getter/service",
data: {
city : data.city.names.en
},
success: function(contact) {
// update your contact information
$("#contact").text(contact);
}
}
}, function(data) {
debugger;
});
});
</script>
显然,您需要一个资源,您可以请求提供给定城市名称的联系信息。
<script type="text/javascript">
$(document).ready(function() {
geoip2.omni(function(data) {
$.ajax({
type: "GET",
url: "your/url/to/contact/getter/service",
data: {
city : data.city.names.en
},
success: function(contact) {
// update your contact information
$("#contact").text(contact);
}
}
}, function(data) {
debugger;
});
});
</script>
<span id="contact"></span>