如何使用php通过邮件发送多个复选框的值
我无法通过PHP邮件从表单发送多个复选框的值 这是我的表格中带有复选框的部分:如何使用php通过邮件发送多个复选框的值,php,forms,Php,Forms,我无法通过PHP邮件从表单发送多个复选框的值 这是我的表格中带有复选框的部分: <input type="checkbox" name="registercheckbox[]" value="saturday-16:00"> <input type="checkbox" name="registercheckbox[]" value="saturday-17:00"> <input type="checkbox" name="registercheckbox[]"
<input type="checkbox" name="registercheckbox[]" value="saturday-16:00">
<input type="checkbox" name="registercheckbox[]" value="saturday-17:00">
<input type="checkbox" name="registercheckbox[]" value="saturday-18:00">
$selected_checkbox = $_POST['registercheckbox'];
if(empty($selected_checkbox)) {
echo("you have to chose at least 1 checkbox!");
}
else {
$N = count($selected_checkbox);
echo('Your preferences are: ');
for($i=0; $i < $N; $i++) {
$preferences = $selected_checkbox[$i];
echo($selected_checkbox[$i] . " ");
}
}
以及发送邮件:
mail($to, $subject, $body, $headers)
回显工作正常:它回显复选框的每个选定值
但是发送电子邮件:它只发送最后选中的复选框值
我做错了什么?为什么不使用foreach循环
if(empty($selected_checkbox)) {
echo("you have to chose at least 1 checkbox!");
} else {
$preferences = ''; // avoid php info messages.
foreach($selected_checkbox as $value){
$preferences .= $value . PHP_EOL;
}
}
对代码的更改是添加下一行文本,您当前正在使用$preferences='newvalue'
每个循环周期覆盖它
简写为:
$preferences.='newvalue'
,否则解释为$preferences=$preferences'“新价值”
问题在于您只需将最后一个值存储在$preferences上,这样您就可以在$selected\u复选框上使用内爆
,并获得一个逗号分隔的列表,以便:
$body .= "Preferences: ";
$body .= implode(', ', $selected_checkbox);
$body .= "\n";
每次覆盖时,请尝试:$preferences.=$selected\u复选框[$i]代码>旁注:您不应该像那样连接$body
;这是一个相当棘手的问题。我会帮助你的。一个foreach
最适合于此。这可能也是一个复制品。现在效果很好!
$body .= "Preferences: ";
$body .= implode(', ', $selected_checkbox);
$body .= "\n";