2013-06-05 71 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

相關問題