-1

我使用 Maxminds GEOIP 工具并在正文之后调用它:

<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script>

要打印出城市和州,我只需将其粘贴到 HTML 文档中:

<script>document.write(geoip_city());</script>
<script>document.write(geoip_region());</script>

我想在我可以提交和分配给变量的隐藏输入中传递这些值。我想要的是这个,但显然语法是这样的:

<input type="hidden" name="city" value="<script>document.write(geoip_city());</script>" />

我已经尝试在这里搜索但找不到答案,有人可以帮忙吗?谢谢!

4

2 回答 2

0

我会写这个(使用jQuery)为:

var geo_city   = geoip_city();
var geo_region = geoip_region();

$(document).ready(function(){

     $("#city").val(geo_city);

});

<input type="hidden" id="city" name="city" value="" />

此代码将获取变量geo_city并将其放入具有 ID 城市的隐藏文本字段中。

于 2012-11-26T21:37:27.473 回答
0

我建议向您希望由 geoip 服务填充的元素添加一个类,例如明显的geoip类名,并使用 geoip 函数的映射来根据隐藏input元素的名称填充隐藏元素的值,例如 (未经测试,并且不幸的是,没有公共 API,无法测试):

var geoipMap {
    'city' : geoip_city(),
    'region' : geoip_region(),
    'country' : geoip_country() // and so on...
};

var inputs = document.getElementsByTagName('input'),
    geoipInputs = [];

for (var i = 0, len = inputs.length; i < len; i++) {
    if (inputs[i].className.indexOf('geoip') !== -1) {
        geoipInputs.push(inputs[i]);
    }
}

for (var i = 0, len = geoipInputs; i < len; i++) {
    geoipInputs[i].value = geoipMap[geoipInputs[i].name];
}
于 2012-11-26T21:45:49.290 回答