许多相同的输入->对一个请求的表单/对许多请求的许多表单?

时间:2019-03-28 20:35:16

标签: javascript html forms semantic-markup

我正在<form>上工作,这些<input>具有多组具有相同属性name='product-code'name='amount'的{​​{1}}(由于结构)。 为了更好地理解,例如:在表格中您可以选择一种特定产品的颜色和数量以添加到购物篮中,但是我想从目录中发送产品代码(因为该产品的每种颜色是目录中的另一种商品)而不是发送颜色名称。 而且我正在尝试了解如何正确地进行语义化和序列化。它应该是一种形式和一种邮寄请求,还是多种形式和许多邮寄请求?您对此有何看法?

<form>
  <div>
    <input type="text" name="product-code" value="ST912600">
    <input type="number" name="amount" value="2">
  </div>
  <div>
    <input type="text" name="product-code" value="ST821806">
    <input type="number" name="amount" value="0">
  </div>
  <div>
    <input type="text" name="product-code" value="ST467165">
    <input type="number" name="amount" value="1">
  </div>
  <div>
    <input type="text" name="product-code" value="ST348499">
    <input type="number" name="amount" value="1">
  </div>
  <div>
    <input type="text" name="product-code" value="ST545081">
    <input type="number" name="amount" value="0">
  </div>
  <div>
    <input type="text" name="product-code" value="ST430287">
    <input type="number" name="amount" value="0">
  </div>
  <div>
    <input type="text" name="product-code" value="ST988144">
    <input type="number" name="amount" value="4">
  </div>
  <button type="submit">Send</button>
</form>

我希望服务器将解析具有多个数据的请求作为数组

1 个答案:

答案 0 :(得分:1)

您不能在form标记中使用相同的名称。像关联数组一样可视化表单。

name => value
name2 => value2

因此,如果您发送具有相同名称的表单,则会产生冲突。

但是您可以使用一种简单的形式,根据需要更改name属性,并设置一个名为product-code的类。 preventDefault在您的提交按钮上使用JS,并使用getElementsByClassName并获取其值等。保存在数组中并创建一个循环,以formElt.submit()的功能逐一提交。

或者用HTML创建很多表格。