1

我的第一个多选表单有问题。我已经阅读了很多帖子,但不知道如何分解数组,以便我可以通过电子邮件发送多选表单的结果这就是我所拥有的。

<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= 'myEmail@mail.com';
 $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,因为它不起作用,所以我认为删除它会更容易阅读。

4

1 回答 1

1

PHP 的表单数据解析器有点……奇怪。如果该名称以 . 结尾,它将仅支持给定名称的元素的多个值[]

将您的 HTML 更改为:

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

然后$_POST['serv']将是一个可以循环的数组。

于 2013-04-26T22:32:15.900 回答