2011-04-07 49 views
0

我想将一个javascript变量传递给php,我想在表单中使用隐藏的输入字段。这里是我的代码至今:以形式打印JS变量

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

Unfortunally这并不工作,作为输出的精确同上,而不是城市名作为值。任何一个人都可以指出我正确的方向吗?我不知道问题出在哪里。

谢谢!

回答

2

隐变量是不错的主意(如果它是被提交表单的一部分)。

您可以像这样设置,只要您为此输入添加一个city的ID即可。

<script type="text/javascript"> 
    document.getElementById('city').setAttribute('value', geoip_city()); 
</script> 

您可以将该脚本放在页面的底部,或者使用其他JavaScript,如果您已经有一些。只要确保在运行时存在输入元素

+0

嗨,是的输入存在,我添加了一个非常类似的JavaScript(请参阅上面的Calums回答)在我的页面的底部,我的其他JavaScript位于。它的作品完美!谢谢你的帮助! – Andrej 2011-04-07 11:13:30

1
<script> 
    function davidIsPedantic(){ 
     document.getElementById('city').value = geoip_city(); 
    } 
</script> 

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

编辑:你去了。只要元素已经加载,就要在更新输入时调用davidIsPedantic()函数。尽快在页面加载调用它,使用此:

window.onload = davidIsPedantic(); 
+0

元素存在之前就不能访问元素 – Quentin 2011-04-07 10:55:23

+1

完美无缺!谢谢! – Andrej 2011-04-07 10:57:41