0

我正在尝试构建一个非常简单的订购表格,人们可以在其中从满满一手的产品中挑选,并为每种产品选择相应的数量。

<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循环内的隐藏表单域来解决这个问题。但是,这只会发送列表中最后一个产品的nameamount

谢谢你的帮助!

4

1 回答 1

1

您使用的电子邮件方法确实非常基本 - 我建议您使用诸如电子邮件模板管理器之类的东西,它可以提供更好的整体结果。但理论上您需要将数据保存为数组

<input name="fields[{name}][]" type="number" min="0" value="1" />
于 2014-04-08T08:03:31.177 回答