PHP表单到电子邮件阵列

时间:2013-04-23 23:01:21

标签: php forms

遇到一些麻烦。我有一个数组正在输入我的表单数据ro电子邮件,但试图找到一种方法来组合一些复选框。对于“Grips”,如果选中,我会列出一些复选框。下面是代码片段(这只是PHP的相关部分,表单邮件程序工作得很好,只是无法获取所有复选框发布):

$grind = join(", ", $_REQUEST["grind"]);

 $fields = array(); 
 $fields{"AccountName"} = "Accounts's Name:  "; 
 $fields{"FitterName"} = "Fitter's Name:  "; 
 $fields{"CustomerCat"} = "__CUSTOMER INFO___"; 
 $fields{"CustomerName"} = "Customer's Name:  ";
 $fields{"CustomerPhone"} = "Customer's Phone:  ";
 $fields{"CustomerAddress"} = "Customer's Address:  ";
 $fields{"CustomerCity"} = "Customer's City:  ";
 $fields{"CustomerState"} = "Customer's State;  ";
 $fields{"CustomerZip"} = "Customer's Zip:  ";
 $fields{"WedgeType"} = "Wedge Loft:  ";
 $fields{"$grind"} = "Wedge Grind:  " ;
 $fields{"WedgesShaft"} = "Wedge Shaft:  ";

这是HTML

<input type="checkbox" name="grind[V-Grind]" class="grinds" value="V-Grind">V-Grind
<input type="checkbox" name="grind[Tour Grind]" class="grinds" value="Tour Grind">Tour Grind
<input type="checkbox" name="grind[Heal Grind]" class="grinds" value="Heal Grind">Heal Grind
<input type="checkbox" name="grind[No Grind]"  class="grinds"value="No Grind">No Grind

我知道这个$fields{"$grind"} = "Wedge Grind: " ;不是从$ grind顶部传递数组的正确方法,但不确定什么是正确的方法,因为其他一切都很好。

1 个答案:

答案 0 :(得分:0)

您的代码将使用逗号分隔正确地破坏数组。但是您使用POSTed值来命名数组元素的键。这不会帮助您构建电子邮件。

例如,如果用户选择“Heal Grind”和“Tour Grind”,那么您的代码会创建:

$fields{"Heal Grind, Tour Grind"} = "Wedge Grind:  ";

所以POSTed值存储在键中,这对我来说似乎不合逻辑。为什么不成功:

$fields{"WedgeGrind"} = "Wedge Grind: " . $grind;

然后在电子邮件中,当您引用此字段时,它将创建:

Wedge Grind: Heal Grind, Tour Grind

您的值正确发布。由于您没有提供完整的代码,我不确定您是如何构建电子邮件的,但是将值存储在数组键中通常不是这样做的。使用第二个示例并使用它构建电子邮件似乎更合乎逻辑。

你也有一个“No Grind”的复选框选项,但是用户也可以选择任何其他研磨选项加上“No Grind”。因此,如果您收到“No Grind”和“V-Grind”的订单,这会使您感到困惑(我只是假设),您需要跟进客户以验证订单。相反,你可以选择磨削复选框并删除“No Grind”选项,这样如果没有磨削,你知道不需要磨削。

除非客户可能为每个项目订购不同研磨的多个项目,否则现有系统是有意义的,但如果是这样的话可以稍微改进一下。