2012-09-13 30 views
0

我从来没有做过这样的事情,我想知道如何去做。我需要把4个输入到一个子阵列,如果它是外地html和javascript同名多输入 - 如何?

我知道,当我$ _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"/> 

这是正确的还是错误的?

谢谢

+0

通常,将多个具有相同名称的输入发送到服务器时没有问题。如果您运行的是萤火虫或小提琴手,您可以观看发送至服务器的请求,并查看输入是如何通过的。我只是将输入名称命名为“offer”,因为它应该作为offer提供给服务器[] – scrappedcola

+0

这个问题与JavaScript有什么关系? –

回答

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) [假定形式的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[] = 11插入阵列arr

0

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

+0

为了更加内联他们想要的:可以使用'Name'而不是'ClassName'。 – Rhyono

+0

是的,也是有效的。 'document.getElementsByName(“name”);' –

+0

OP提到将字段发送到服务器。在这种情况下,'name'很重要,而不是'class'。 –

1

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

是提供内置了对HTML请求的支持
GET /mypage.html?offer=15.00&offer=5.0&offer=19.0 (etc, could be post too) 

大多数语言代表这个请求作为一个地图,都有一个名为“要约”键,它是一个包含提交的值的数组或列表的值。

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

+0

从它的外观('$ _POST'),提问者正在使用PHP。在我见过的所有PHP示例中,特殊括号符号'[]'总是存在的。我不知道是否需要,但我的印象是它是。 –

+0

我已经做了非常有限的php,但这是一个http事情......如果这样的事情是在PHP中完成的,它可能是一个命名约定。 (但不知道)。 – Gus

+0

在文档中的评论似乎支持这个概念:注意他们反复命名55的例子... http://www.php.net/manual/en/reserved.variables.post.php – Gus