2013-06-05 49 views
0

我想从sendgrid API发送邮件给多个用户。从多个复选框中获取电子邮件ID到一个数组发送电子邮件

我必须提供选择框选项给最终用户从可用列表中选择他们需要的电子邮件。

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个复选框只有2邮件ID是接收邮件。

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

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

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

在此先感谢

回答

0

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

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

+0

嗨感谢您的回复,这行代码也无法发送超过2个用户的邮件。我刚才尝试过。 – user2430278

相关问题