我有一个能够正确传递所有值的表单。
但是,是否可以将所有内嵌的复选框值放在收到的电子邮件的单独行中?
此刻我可以只是一个|或者//或者值之间的任何值,但为了更容易阅读,我们希望单独的行上的值。
我的代码(是的,我知道它已经过时了):
//FORM PROCESSOR
// Specify your email here
$mail_to = 'xxxx.co.nz';
// Assigning data from $_POST array to variables
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$address = $_POST['address'];
$purchase = $_POST['purchase'];
$message = $_POST['message'];
// pulldown
$motor = $_POST['motor'];
//checkboxes
$options = implode(' | ', $_POST['checkboxes1']);
// Construct subject of the email
$subject = '700 Quote Form';
// Construct email body
$body_message = 'Name: ' . $name . "\r\n";
$body_message .= 'Email: ' . $email . "\r\n";
$body_message .= 'Phone: ' . $phone . "\r\n";
$body_message .= 'Address: ' . $address . "\r\n";
$body_message .= 'Boat Purchase Date: ' . $purchase . "\r\n";
$body_message .= 'Message: ' . $message . "\r\n";
$body_message .= 'Trailer Option: ' . $trailer . "\r\n";
$body_message .= 'Motor Option: ' . $motor . "\r\n";
$body_message .= 'Options: ' . $options . "\r\n";
$check_msg;
// Construct headers of the message
$headers = 'From: ' . $email . "\r\n";
$headers .= 'Reply-To: ' . $email . "\r\n";
$mail_sent = mail($mail_to, $subject, $body_message, $headers);
if ($mail_sent == true){
header('location: http://www.seaboss.co.nz/index.php/thanks');
exit;
}
?>
答案 0 :(得分:1)
我假设发布的复选框值数组看起来像这样 - 其中每个值(此处:2,3,7)来自"值" 输入类型"复选框" 的属性,名称为" checkboxes1 []":
Array
(
[0] => > 2
[1] => > 3
[2] => > 7
)
也就是说,最好将数组赋值与数组格式分开以便显示。最后一步是使用新行字符串(" \ r \ n")连接数组元素 - 导致在单独的行上显示每个数组值。
// Assignation of the posted array.
$options = $_POST['checkboxes1'];
// Formatting for display.
$body_message .= 'Options:\r\n' . implode('\r\n', $options) . '\r\n';
如果您还要为每个数组值添加一个符号(例如">"),那么您必须应用中间前缀步骤:
// Assignation of the posted array.
$options = $_POST['checkboxes1'];
// Prefixing array values.
foreach ($options as &$value) {
$value = ' > ' . $value;
}
// Formatting for display.
$body_message .= 'Options:\r\n' . implode('\r\n', $options) . '\r\n';
关于前缀步骤,请注意使用参考符号("&")。因此,每个数组值都被直接修改,通过引用分配。
的更多细节生成的电子邮件文本将如下所示:
Options:
> 2
> 3
> 7
建议使用漂亮的模板构建电子邮件:postmark-templates项目。
答案 1 :(得分:1)
您可以使用PHP_EOL
转到下一行。使用此PHP_EOL将有助于解决与使用Linux或Windows平台相关的问题。
例如:
$body_message = 'Name: ' . $name . PHP_EOL;
$body_message .= 'Email: ' . $email . PHP_EOL;