2013-04-26 83 views
1

我有我的第一個多選表單的問題。我讀了很多帖子,但無法弄清楚如何打破陣列,以便我可以通過電子郵件發送多選形式的結果這就是我所擁有的。PHP,電子郵件,多選擇下拉

<select name="serv" id="serv" multiple> 
<option value = "Business Advocacy">Business Advocacy</option> 
<option value = "Business Planning & Advice">Business Planning & Advice</option> 
<option value = "Economic Development">Economic Development</option> 
<option value = "Export Assistance">Export Assistance</option> 

在我的PHP頁面,我有以下:我有

function sendMail() 
{ 
$org= $_POST['org']; 
$street= $_POST['street']; 
$city= $_POST['city']; 
$state= $_POST['state']; 
$zip= $_POST['zip']; 
$phone= $_POST['phone']; 
$ext= $_POST['ext']; 
$web= $_POST['web']; 
$serv= $_POST['serv']; 
$description= $_POST['description']; 
$first= $_POST['first'];  
$last= $_POST['last']; 
$email= $_POST['email']; 
$position= $_POST['position']; 


$to= '[email protected]'; 
$message = '<html><body>'; 
$message .= '<h1>Organizational Request To Be Added To Website</h1>'; 
$message .= 'Org:' . $org . '<br />'; 
$message .= 'Street:' . $street . '<br />'; 
$message .= 'City:' . $city . '<br />'; 
$message .= 'State:' . $state . '<br />'; 
$message .= 'Zip:' . $zip . '<br />'; 
$message .= 'Phone:' . $phone . '<br />'; 
$message .= 'Ext.:' . $ext . '<br />'; 
$message .= 'Web:' . $web . '<br />'; 
$message .= 'Serv:' . $serv . '<br />'; 
$message .= 'Desc:' . $description . '<br />'; 
$message .= 'First:' . $first . '<br />'; 
$message .= 'Last:' . $last . '<br />'; 
$message .= 'Email:' . $email . '<br />'; 
$message .= 'Position:' . $position . '<br />'; 
$message .='</body></html>'; 
$subject = "Website Request"; 
$message = $message; 
$headers = "From:" . $email . "\r\n"; 
mail($to, $subject, $message, $headers); 
} 

問題是搞清楚如何發送電子郵件至$ SERV數組內容。我試圖用一個for循環來確定這將是最簡單的,但我只能得到郵寄的內容之一。有人可以看看嗎?我拿出了我在那裏的forloop,因爲它沒有工作,所以我認爲它更容易閱讀和刪除。

+0

你的HTML應該是無效的? (第二行)'

+0

show var dump of $ serv array – zod 2013-04-26 22:54:39

回答

1

PHP的表單數據解析器有點奇怪。如果名稱以[]結尾,它將只支持給定名稱的元素的多個值。

你的HTML改爲:

<select name="serv[]" id="serv" multiple> 

然後$_POST['serv']將是一個ARRY,你也可以遍歷。

+0

我會在哪裏放置for循環?它是否與聲明的變量一起使用?難以理解如何製作它使用電子郵件php代碼 – 2013-04-26 22:37:21

+0

一個簡單的方法是使用implode。'$ message。='Serv:'。implode(',',$ serv)。'
';'更好的方法是'$ message。 ='Serv:'。(is_array($ serv)?implode(',',$ serv):'None selected')。'
';' – 2013-04-26 22:46:45

+0

它告訴我,當我使用'easy way' – 2013-04-26 22:50:59