无法在phpmailer中发送空复选框值

时间:2018-06-26 08:10:08

标签: php foreach phpmailer

我正在使用phpmailer处理电子邮件形式,每次复选框都为空时出现问题,因此我发现问题出在以下波纹管中:

$f_select = '';
foreach ($_POST['select'] as $key => $value) {
    $f_select .= $value."\r\n";
}

它返回以下错误:

  

警告:为中的foreach()提供了无效的参数   /home/alive-web-tech/www/nagoyashobotenken/contact/complete.php on   第23行

如何解决此问题?我想我需要创建一个条件来告诉您,当复选框值为空时,必须采取某些措施来防止出现该错误。

3 个答案:

答案 0 :(得分:3)

有两种方法可以解决此问题。

  1. 如果即使您确实没有选中复选框的值,也必须更新表单以为每个复选框包含一个值为0的隐藏输入:

    <input type="hidden" name="select[firstCheckbox]" value="0" />
    <input type="checkbox" name="select[firstCheckbox]" />
    
  2. 如果您不关心复选框的空值,则可以在进入循环之前简单地验证发布的数据是否为空:

    $f_select = '';
    if (!empty($_POST['select'])) {
        foreach ($_POST['select'] as $key => $value) {
            $f_select .= $value."\r\n";
        }
    }
    

答案 1 :(得分:1)

在调用$_POST['select']之前,您需要检查foreach()是否为空。

您可以尝试以下操作:

$f_select = '';
 if (!empty($_POST['select'])) {
   foreach ($_POST['select'] as $key => $value) {
     $f_select .= $value."\r\n";
   }
}

答案 2 :(得分:1)

在循环浏览其内容之前,您必须检查$_POST['select]

$f_select = '';

if (!empty($_POST['select'])) {
    foreach ($_POST['select'] as $key => $value) {
        $f_select .= $value."\r\n";
    }
}