遇到一些麻烦。我有一个数组正在输入我的表单数据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顶部传递数组的正确方法,但不确定什么是正确的方法,因为其他一切都很好。
答案 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”选项,这样如果没有磨削,你知道不需要磨削。
除非客户可能为每个项目订购不同研磨的多个项目,否则现有系统是有意义的,但如果是这样的话可以稍微改进一下。