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

我正在用网站上销售的产品创build一个页面。 我想在每个产品附近添加一个“添加到购物车”button,这些button的标记类似于此:

<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> ... 

由于提交的input信息会有不同的名称(包括产品的代码),所以最大的问题是:我应该将整个产品列表包装在一个表单中,还是应该为每个产品创build一个表单? 在代码中:

 <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> 

哪一个是最佳实践? 任何严重的原因,不使用一个或另一个,或者我是否完全错误?

最佳实践:每种产品的一种forms绝对是一种方式。

优点:

  • 这将节省您不必分析数据来确定哪个产品被点击的麻烦
  • 这将减less发布数据的大小

在你的具体情况

如果你只是打算有一个表单元素,在这种情况下,一个submitbutton,所有的表单应该工作得很好。


我的build议每个产品做一个表单,并将您的标记更改为如下forms:

 <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 。 没有parsing。 它将允许您在将来添加更多参数(大小,颜色,数量等)。

注意:使用<button><input>没有什么技术上的好处,但作为一个程序员,我发现使用action=='add_to_cart'action=='Add to Cart'更酷。 另外,我讨厌把expression和逻辑混合起来。 如果有一天,你决定button说“添加”更有意义,或者如果你想使用不同的语言,你可以自由地做到这一点,而不必担心你的后端代码。

Interesting Posts