两个名字的输入有什么区别?

时间:2014-05-10 14:45:42

标签: html input

2个输入名称有什么区别?

好的,正常我通常使用这种格式name="xxxxxx"

<input type="text" name="xxxxxx"/>

但是,今天我看到名字格式我不理解name="xxxxx[]"

<input type="text" name="xxxxxx[]"/>

[]

中的name="xxxxx[]"是什么

4 个答案:

答案 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对象,并且密钥为firstlinesecondline

你仍然可以使用jQuery查询:

$('input[address\\[\\]=firstline]')

需要两个反斜杠的原因是因为单个反斜杠被解释为JavaScript字符串转义符,所以你需要两个来指定一个文字反斜杠,它为选择器提供转义字符...

答案 3 :(得分:0)

在HTML5中,name attribute只是一个字符串(没有任何特殊语法)。唯一可以具有特殊含义的是_charset_isindex字符串。因此,方括号本身并不特别。

然而,编程语言或与HTML交互的库的作者有时会决定定义特殊的语法。这就是PHP服务器端语言的情况,语言使用表单元素名称中的成对括号来自动定义数组类型的变量。有关详细信息,请参阅How do I create arrays in a HTML ?

(其他langs可能会使用类似的约定,但我真的不知道。)