使用[]作为type =“text”输入名称?

时间:2013-07-02 04:37:31

标签: php html forms input cross-browser

基本上我想让用户能够输入一堆属性, 因此,当用户选择列表中的最后一个输入时,我们将创建另一个输入。

这真的很简单,现在问题是在服务器上命名和获取, 我知道在谷歌浏览器中,下面的代码是有效的,并且会在另一端给我一个数组。 但我似乎无法在任何地方找到有关此功能的浏览器兼容性的信息,所有浏览器都支持此功能吗?或者仅对选择真正有效。

如果有人可以解释,或者指出我正确的W3C指导,那就太棒了。

<!doctype html>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <?php if(!empty($_POST)){
        xdebug_var_dump($_POST);
    } ?>

    <form method="post">
        <input name="testing[]" value="testing1" />
        <input name="testing[]" value="testing2" />
        <input name="testing[]" value="testing3" />
        <input name="testing[]" value="testing4" />
        <input name="testing[]" value="testing5" />
        <button type="submit">Go</button>
    </form>
</body>
</html>

3 个答案:

答案 0 :(得分:2)

输入的name属性非常灵活 - 您几乎可以包含任何字符,尽管您可能不想探索太多选项。当提交这样的表单时,数据会在您看到时提交,所有数据都与您期望的名称相同。

然而,在服务器端,情况可能会有所不同。在这种情况下,PHP特别将诸如testing[]之类的名称解释为数组元素,并将所有具有此类名称的输入字段组合到一个数组中。这是将可变长度数据传递到PHP脚本的好方法。

这与HTML标准的关系不如PHP有用。

答案 1 :(得分:2)

它没有浏览器兼容性问题。它适用于所有浏览器。您可以继续使用此代码。

答案 2 :(得分:0)

从我到目前为止所读到的内容来看,它与浏览器兼容性无关。浏览器仍按原样发送数据,PHP是解释$ _POST数据的原因:

A link on PHP.net describing this

Another slightly similar question on Stack Overflow

PHPFiddle的某些不同浏览器上使用此示例,以证明其有效。