我正在尝试从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>
我的代码中有什么错误。还是有更好的方法来达到我的要求。
提前致谢
答案 0 :(得分:0)
此
$options[] = isset($_POST['options[]']) && $_POST['options[]'] ? "1" : "0";
不正确。 []
将从表单名称中删除并转换为数组。您可以使用$_POST['options'][$i]
访问各个元素。