html和javascript同名多个输入 - 如何?

时间:2012-09-13 04:00:44

标签: php html forms post

我从未做过这样的事情,我想知道怎么做。如果字段输出

,我需要将4个输入放入子数组中

我知道当i $ _POST表单到服务器时,它会发送输入的名称,但是如何让输入被允许具有相同的名称

例如

我需要它的子数组是商品 这是我不知道的。我如何获得以下输入

<input name="offers[]['minspend']" value="15.00"/>
<input name="offers[]['minspend']" value="5.00"/>

<input name="offers[]['minspend']" value="19.00"/>
<input name="offers[]['minspend']" value="8.00"/>

<input name="offers[]['minspend']" value="30.00"/>
<input name="offers[]['minspend']" value="7.00"/>

<input name="offers[]['minspend']" value="100.00"/>
<input name="offers[]['minspend']" value="10.00"/>

这是对还是错?

感谢

3 个答案:

答案 0 :(得分:1)

它取决于处理您的请求(java,php,whatnot)的后端技术,但从html的角度来看,具有相同名称的多个元素将仅使用相同的参数名称发送它们的值。您不需要任何特殊的[]语法。

GET /mypage.html?offer=15.00&offer=5.0&offer=19.0 (etc, could be post too)

大多数为html请求提供内置支持的语言将此请求表示为地图,其中一个名为“offer”的键和一个包含所提交值的数组或列表的值。

例如http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameterMap()

答案 1 :(得分:1)

此表格

<input name="offers['minspend'][]" value="15.00"/>
<input name="offers['minspend'][]" value="5.00"/>

<input name="offers['minspend'][]" value="19.00"/>
<input name="offers['minspend'][]" value="8.00"/>

<input name="offers['minspend'][]" value="30.00"/>
<input name="offers['minspend'][]" value="7.00"/>

<input name="offers['minspend'][]" value="100.00"/>
<input name="offers['minspend'][]" value="10.00"/>

var_dump($_POST) [假设form method = post]给:

array(1) {
    ["offers"] = > array(1) {
        ["\'minspend\'"] = > array(8) {
            [0] = > string(5)"15.00"
            [1] = > string(4)"5.00"
            [2] = > string(5)"19.00"
            [3] = > string(4)"8.00"
            [4] = > string(5)"30.00"
            [5] = > string(4)"7.00"
            [6] = > string(6)"100.00"
            [7] = > string(5)"10.00"
        }
    }
}

所以,你就是这样做的。

你可以在minspend周围删除'。他们不需要。

你快到了。 offers[]['minspend']表示您获得:

array(){
    array(){
        'minspend' => "15.00"
    }
    array(){
        'minspend' => "5.00"
    }
    .. and so on
}

所以发生的事情是,当您执行arr[] = 1之类的操作时,1会插入到数组arr中。

答案 2 :(得分:0)

首先让我告诉你我从这个问题中理解了什么。您希望多个输入字段具有相同的名称,然后您想要全部选择它们以执行某些操作。如果是这种情况,我想提出一种不同的方法 - 为什么不将同一个类(cssclass)分配给想要具有相同名称的所有控件。这样,您就可以使用document.getElementsByClassName("yourclassName")一起选择它们。这将返回一个包含class属性为yourclassName的所有元素的数组。 或者,如果您想坚持使用名称,那么您可以使用document.getElementsByName("elementName");返回一个名为elementName的元素数组。 希望它有所帮助。