我正在尝试构建一个非常简单的订购表单,人们可以从一手产品中挑选产品,并为每种产品选择相应的数量。
<form id="order" method="post" action="" enctype="multipart/form-data">
<table id="products">
<xsl:for-each select="/data/products/entry">
<tr>
<td>
<xsl:value-of select="name"/>
</td>
<td>
<label>Amount
<input name="fields[{name}]" type="number" min="0" value="1" />
</label>
<input name="send-email[body]" value="fields[{name}]" type="hidden" />
</td>
</tr>
</xsl:for-each>
</table>
<label>Name
<input name="fields[name]" type="text" />
</label>
<label>E-mail
<input name="fields[e-mail]" type="text" />
</label>
<label>Address
<input name="fields[address]" type="text" />
</label>
<input name="send-email[recipient]" value="tintin" type="hidden" />
<input name="send-email[sender-email]" value="fields[e-mail]" type="hidden" />
<input name="send-email[sender-name]" value="fields[name]" type="hidden" />
<input name="send-email[reply-to-email]" value="fields[e-mail]" type="hidden" />
<input name="send-email[reply-to-name]" value="fields[name]" type="hidden" />
<input name="send-email[subject]" value="An order has been placed" type="hidden" />
<input name="action[order]" type="submit" value="Place order" />
</form>
通过上述表单提交的用户数据应转换为电子邮件并作为电子邮件发送。
这大部分都有效,但我如何列出用户订购的产品及其相应的金额?
我试图通过for-each
循环中的隐藏表单字段来解决这个问题。但是,这只会发送列表中最后一个产品的name
和amount
。
感谢您的帮助!
答案 0 :(得分:1)
您使用的电子邮件方法确实非常基本 - 我建议您使用电子邮件模板管理器之类的内容,这样可以提供更好的整体效果。但理论上您需要将数据保存为数组
<input name="fields[{name}][]" type="number" min="0" value="1" />