如何使用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[]"

我无法通过PHP邮件从表单发送多个复选框的值

这是我的表格中带有复选框的部分:

<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";