2014-05-10 74 views
1

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

OK,一般我通常使用这种格式name="xxxxxx"

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

但是今天我看到的名称格式,我不明白name="xxxxx[]"

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

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

+0

可以DOM仍然使用jQuery例如查询:$('输入[地址\\ \\ ] = firstline]') – mohamedrias

回答

0

在HTML5中,所述name attribute只是一个字符串(没有任何特殊的语法)。唯一可以有特殊含义的是_charset_isindex字符串。因此方括号本身没什么特别的。然而,与HTML表单交互的编程语言或库的作者有时决定定义特殊的语法。服务器端语言的情况就是这种情况,其中语言使用表单元素名称中的成对括号来自动定义数组类型的变量。有关更多详细信息,请参阅How do I create arrays in a HTML ?

(这有可能是其他LANGS利用类似的公约,但我真的不知道。)

0

没什么,它只是另一个名字,可能是自动生成的或某人为了某个目的而使用的。

+0

如果我从名称中删除[],它可能会影响循环插入过程? – user3610880

+0

如果它是空的[],我不认为它会影响任何东西。 –

0

这主要是因为服务器端的框架。

使用PHP,举例来说,如果你有

<input type="text" name="address[firstline]"> 

<input type="text" name="address[secondline]"> 

,并提交形式,在你的PHP代码在服务器上你会检索来自一个address对象请求,它将有密钥firstlinesecondline

你仍然可以查询使用jQuery:

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

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

1

使用此格式xxxxx[]变量$_POST['xxxxx']是表单发布时的数组。 例如,可以通过将$ _POST [ 'XXXXX']进行迭代:

<?php 
$data = filter_input(INPUT_POST, 'xxxxx'); 

if(is_array($data)) { 
    foreach($data as $value) { 
     echo $value; 
    } 
} 
?>