页面中的多个表单或多个提交?

时间:2012-01-03 12:35:54

标签: html forms submit multiple-forms

我正在创建一个包含网站上销售的产品的页面。我想在每个产品附近添加一个“添加到购物车”按钮,其中列出的标记类似于:

<h4 class="productHeading">Product Name 1</h4>
<div>
  Extra information on the product 1.
</div>
<h4 class="productHeading">Product Name 2</h4>
<div>
  Extra information on the product 2.
</div>
 ...

由于提交输入将具有不同的名称(包含产品的代码),最大的问题是:我应该将整个产品列表包装在一个表单中,还是应该为每个产品创建一个表单?在代码中:

<form method="post" action="process.php">
  <h4 class="productHeading">Product Name 1</h4>
  <div>
    Extra information on the product 1.
    <input type="submit" name="submit1" value="Add to Cart">
  </div>
  <h4 class="productHeading">Product Name 2</h4>
  <div>
    Extra information on the product 2.
    <input type="submit" name="submit2" value="Add to Cart">
  </div>
</form>

或者...

<h4 class="productHeading">Product Name 1</h4>
<div>
  Extra information on the product 1.
  <form method="post" action="process.php">
    <input type="submit" name="submit1" value="Add to Cart">
  </form>
</div>
<h4 class="productHeading">Product Name 2</h4>
<div>
  Extra information on the product 2.
  <form method="post" action="process.php">
    <input type="submit" name="submit2" value="Add to Cart">
  </form>
</div>

哪一个是最佳做法?任何严重的理由不使用其中一个,或者我完全错了?

1 个答案:

答案 0 :(得分:94)

最佳做法:每种产品一个表格绝对是您的选择。

优点:

  • 它将为您省去解析数据以确定点击哪个产品的麻烦
  • 它将减少发布数据的大小

在您的具体情况

如果您只打算拥有一个表单元素,在这种情况下是一个submit按钮,那么一个表单应该可以正常工作。


我的推荐 每个产品都有一个表单,并将您的标记更改为:

<form method="post" action="">
    <input type="hidden" name="product_id" value="123">
    <button type="submit" name="action" value="add_to_cart">Add to Cart</button>
</form>

这将为您提供更清洁,更实用的POST。没有解析。 它将允许您在将来添加更多参数(大小,颜色,数量等)。

  

注意:使用<button><input>没有任何技术优势,但作为程序员,我发现使用{{1}更酷比action=='add_to_cart'。此外,我讨厌将演示与逻辑混合在一起。如果有一天你决定按钮更有意义说'#34;添加&#34;或者如果你想使用不同的语言,你可以自由地这样做,而不必担心你的后端代码。