2个输入名称有什么区别?
好的,正常我通常使用这种格式name="xxxxxx"
<input type="text" name="xxxxxx"/>
但是,今天我看到名字格式我不理解name="xxxxx[]"
<input type="text" name="xxxxxx[]"/>
[]
name="xxxxx[]"
是什么
答案 0 :(得分:1)
使用此格式xxxxx[]
,变量$_POST['xxxxx']
在发布表单时是一个数组。
例如,可以通过$ _POST迭代[&#39; xxxxx&#39;]:
<?php
$data = filter_input(INPUT_POST, 'xxxxx');
if(is_array($data)) {
foreach($data as $value) {
echo $value;
}
}
?>
答案 1 :(得分:0)
没有什么,它只是另一个名字,可能是自动生成的东西,也可能是出于某种目的使用的。
答案 2 :(得分:0)
这主要是因为服务器端框架。
例如,使用PHP,如果你有
<input type="text" name="address[firstline]">
和
<input type="text" name="address[secondline]">
并提交表单,在服务器上的PHP代码中,您从请求中检索单个address
对象,并且密钥为firstline
和secondline
它
你仍然可以使用jQuery查询:
$('input[address\\[\\]=firstline]')
需要两个反斜杠的原因是因为单个反斜杠被解释为JavaScript字符串转义符,所以你需要两个来指定一个文字反斜杠,它为选择器提供转义字符...
答案 3 :(得分:0)
在HTML5中,name attribute只是一个字符串(没有任何特殊语法)。唯一可以具有特殊含义的是_charset_
和isindex
字符串。因此,方括号本身并不特别。
然而,编程语言或与HTML交互的库的作者有时会决定定义特殊的语法。这就是PHP服务器端语言的情况,语言使用表单元素名称中的成对括号来自动定义数组类型的变量。有关详细信息,请参阅How do I create arrays in a HTML ?。
(其他langs可能会使用类似的约定,但我真的不知道。)