0

对此有些麻烦。我有一个数组正在输入我的表单数据 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 传递顶部数组的正确方法,但不确定什么是正确的方法,因为其他一切都很好。

4

1 回答 1

0

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

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

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

所以 POST 的值存储在键中,这对我来说似乎不太合乎逻辑。为什么不做:

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

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

Wedge Grind: Heal Grind, Tour Grind

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

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

除非客户可能会订购多个具有不同研磨度的物品,否则现有系统是有意义的,但如果是这样的话,它可能会有所改进。

于 2013-04-23T23:27:19.130 回答