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