0

我有一个表格,每行都显示有复选框,用户可以选择多个复选框,然后单击提交,这将使用 phpmailer 发送电子邮件。我希望用户选择的项目包含在电子邮件正文中。我知道以下内容是错误的,但有人可以告诉我该怎么做吗?

这就是我到目前为止所拥有的......它确实发送了一封电子邮件,但只有数组中的第一个选择在正文中。

$select = $_POST['select'];
if(empty($select)) 
{
 echo("You didn't make any selections.");
} 
else
{
$count = count($select);
 for($i=0; $i < $count; $i++)
{

$to = "test@test.com";
$subject = "Booking Reguest";
$message = '    
<html>
<head>
<title>Booking Request</title>
</head>
<body>
<p>Please create bookings for the following ...</p>
<p>'. $select[$i] .',</p>
<p>Kind regards</p>
<p>blah blah blah</p>
</body>
</html>';
$headers = 'From: noreply@test.com' . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($to,$subject,$message,$headers);
    }
    }

感谢帮助!

4

1 回答 1

0

也许您正在循环整个邮件而不是仅选择?

请向我们提供您的 HTML 代码,但如果我理解了问题,这将解决它:

$select = $_POST['select'];
if(empty($select)) 
{
 echo("You didn't make any selections.");
} 
else
{
$count = count($select);

$to = "test@test.com";
$subject = "Booking Reguest";
$message = '    
<html>
<head>
<title>Booking Request</title>
</head>
<body>
<p>Please create bookings for the following ...</p>
<p>';
 for($i=0; $i < $count; $i++)
{
if ($i == (count($select)-1)) {
$message .= $select[$i];
}
else {
$message .= $select[$i] .", ";
}
};
$message .= '</p>
<p>Kind regards</p>
<p>blah blah blah</p>
</body>
</html>';
$headers = 'From: noreply@test.com' . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($to,$subject,$message,$headers);
    }

通过这种方式,它将在复选框元素之间放置一个逗号,而忽略最后一个逗号。

希望这可以帮助。

编辑:

此外,您<br />在每个 之后都缺少一些标签<p>,不是吗?这样,您将收到带有内嵌文本的电子邮件!

于 2013-09-09T08:33:42.633 回答