从多个复选框中将电子邮件ID转换为数组以发送电子邮件

时间:2013-06-05 16:26:36

标签: arrays sendmail

我正在尝试从sendgrid API向多个用户发送邮件。

我必须为最终用户提供选择框选项,以便从可用列表中选择所需的电子邮件。

HTML页面看起来像这样:

<input type="checkbox" name="options[]" value="<? echo $email1 ?>"/> email id1<br/>
<input type="checkbox" name="options[]" value="<? echo $email2 ?>"/> Email id2<br/>
<input type="checkbox" name="options[]" value="<? echo $email3 ?>"/> email id3<br/> 

PHP代码部分是:

$checked = $_POST['options'];
for($i=0; $i < count($checked); $i++){


$options[] = $_POST['options[]'] ? $_POST['options[]']  : '';
    $toList = array($_POST['email_to'],$checked[$i]); }

当我选择并向两个以上的复选框发送邮件时,只有2个邮件ID正在接收邮件。

这意味着一个是“$ toList”中的默认电子邮件ID,第二个来自“$ checked [$ i]”。

如果我取消选中所有复选框,只发送到默认的电子邮件ID,收到此错误:“可捕获的致命错误:传递给SendGrid \ Mail :: setTos()的参数1必须是一个数组,null给定,”。< / p>

我的代码中有什么错误。还是有更好的方法来达到我的要求。

提前致谢

1 个答案:

答案 0 :(得分:0)

$options[] = isset($_POST['options[]']) && $_POST['options[]']  ? "1" : "0";

不正确。 []将从表单名称中删除并转换为数组。您可以使用$_POST['options'][$i]访问各个元素。