【发布时间】:2011-02-23 19:24:12
【问题描述】:
即:
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
和
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
这是否允许且有效?
【问题讨论】:
标签: html validation forms
即:
<form 1>
<input type="hidden" name="url" value="1">
</form 1>
和
<form 2>
<input type="hidden" name="url" value="2">
</form 2>
这是否允许且有效?
【问题讨论】:
标签: html validation forms
<form>
<input type="hidden" name="url[]" value="1">
<input type="hidden" name="url[]" value="2">
</form>
在 PHP 中,您将通过 $_POST['url'] 获取值
for($i=0;$i<count(url);$i++)
echo $_POST['url'][$i];
【讨论】:
是的——每个人都只会提交各自的表格。
如果你有相同的形式,一个会覆盖另一个,它是无效的。
编辑: 正如 Mahmoodvcs 指出的那样,覆盖仅发生在某些语言(例如 PHP)中,而不是 HTML 本身固有的。
【讨论】:
A) 你的第一个例子没问题,因为提交的表单时间会有所不同:
<form id="1">
<input type="hidden" name="url" value="1">
</form>
<form id="2">
<input type="hidden" name="url" value="2">
</form>
B)您的第二个示例也可以,但不是标准的编码实践:
<form>
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
Java 代码二提取两个值:
Map<String,String[]> parmMap = requestObj.getParameterMap();
String input1 = parmMap.get("url")[0];
String input2 = parmMap.get("url")[1];
【讨论】:
是的,有效
这很好
<form name="form1">
<input type="hidden" name="url" value="1">
</form>
<form name="form2">
<input type="hidden" name="url" value="2">
</form>
这也很好,通常会被解释为一个值数组,例如{url: [1, 2]},取决于你的服务器做什么。在 URL 编码中,它看起来像 url=1&url=2。
<form name="form1">
<input type="hidden" name="url" value="1">
<input type="hidden" name="url" value="2">
</form>
【讨论】:
<input type="hidden" name="url[]" value="......."> 如果你不这样做这样做,php 将获取最后一个字段的最后一个值,并将其插入到表单数组中以获取键“url”。
“这不好”在我所知道的每个浏览器上都能正确解析;如果两个 url 出现在 url 编码的字符串中,它将被视为一个数组。在 JQuery 中试试这个:
$('<form name="form1">\
<input type="hidden" name="url" value="1">\
<input type="hidden" name="url" value="2">\
</form>').serialize()
你会得到:"url=1&url=2"
一个编写良好的查询字符串解析器将返回一个像这样的 json 结构:
{"url":["1", "2"]}
是否严格规范?不,但也不是像我上面那样通过用反斜杠转义 EOL 来创建多行字符串。
【讨论】:
要测试它是否有效,请在此处创建页面并在 W3C 进行测试:
【讨论】:
是的。
此外,如果您正在处理单选按钮组,则它是必不可少的。
【讨论】: