多个表单或多个页面提交?
我正在用网站上销售的产品创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发布数据的大小
在你的具体情况
如果你只是打算有一个表单元素,在这种情况下,一个submit
button,所有的表单应该工作得很好。
我的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说“添加”更有意义,或者如果你想使用不同的语言,你可以自由地做到这一点,而不必担心你的后端代码。