PHP电子邮件表单多选
我正在尝试为一个网站设置一个简单的PHP联系人表单,我需要一些帮助来修改PHP,以便从选择菜单中列出多个项目,如果能得到帮助,我将不胜感激。我是一名平面设计师,不是一名开发人员,所以很多事情都是我无法理解的。这就是问题所在:PHP电子邮件表单多选,php,email,forms,multiple-select,Php,Email,Forms,Multiple Select,我正在尝试为一个网站设置一个简单的PHP联系人表单,我需要一些帮助来修改PHP,以便从选择菜单中列出多个项目,如果能得到帮助,我将不胜感激。我是一名平面设计师,不是一名开发人员,所以很多事情都是我无法理解的。这就是问题所在: <label for="Events[]">Which Event(s) Will You Be Attending?</label> <div class="input-bg"> <sel
<label for="Events[]">Which Event(s) Will You Be Attending?</label>
<div class="input-bg">
<select name="Events[]" size="6" multiple="MULTIPLE" class="required" id="Events[]">
<option value="Wednesday">Portfolio Show June 16</option>
<option value="Thursday">Portfolio Show June 17</option>
<option value="Saturday">Graduation Ceremony</option>
<option value="Saturday Eve">Graduation Party</option>
<option value="Not Sure">Not Sure</option>
<option value="Not Coming">Not Coming</option>
</select>
</div>
您将参加哪些活动?
投资组合展6月16日
投资组合展6月17日
毕业典礼
毕业晚会
不确定
不来
下面是PHP:
<?php
// CHANGE THE VARIABLES BELOW
$EmailFrom = "Justin@justgooddesign.net";
$EmailTo = "Justin@justgooddesign.net";
$Subject = "Graduation RSVP";
$Name = Trim(stripslashes($_POST['Name']));
$Email = Trim(stripslashes($_POST['Email']));
$Guests = Trim(stripslashes($_POST['Guests']));
$Events = Trim(stripslashes($_POST['Events']));
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Guests: ";
$Body .= $Guests;
$Body .= "\n";
$Body .= "Events: ";
$Body .= $Events;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
// CHANGE THE URL BELOW TO YOUR "THANK YOU" PAGE
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=http://justgooddesign.net/graduation\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=http://justgooddesign.net/graduation/error.html\">";
}
?>
非常感谢您的帮助 $\u POST['Events']将是一个数组。您可以使用该函数以逗号分隔的字符串连接它们:
$Events = Trim(stripslashes(implode(",", $_POST['Events'])));
或者,您可以使用一条语句逐个迭代这些事件。如果您不想用逗号连接这些事件,但想以其他方式使用它们,则可以使用
foreach
循环。而不是
$Body .= $Events;
您可以使用:
foreach($Events as $event) {
$Body .= '- $event\n';
}
该示例会将每个事件放在自己的行上,前面有一个“-”,使其看起来像一个项目符号列表。当表单中的元素名称以括号结尾时,这意味着PHP将把值放入数组中。换句话说,如果此人选择前两个选项,
$\u POST['Events']
的值将与数组(“星期三”、“星期四”)
相同。如果您只需要一个包含所有选项的字符串(如“星期三-星期四”),可以使用。如果要检查是否存在特定项目,可以使用。例如:
if (in_array('Wednesday', $_POST['Events']))
{
echo 'You selected Wednesday!';
}
作为旁注,我建议重新考虑允许多个选择的选择控件。许多人不习惯这种行为,也不会意识到他们可以选择多个。复选框要清楚得多。+1对于
foreach
示例,无可否认,我懒得提供:-)谢谢,这帮了大忙!很多事情我都不知道。我们都从某个地方开始,只是很乐意帮忙:-)