分隔内爆复选框上的值



>我有一个表单,可以很好地正确传递所有值。

但是,是否可以将所有内爆的复选框值放在传入电子邮件的单独行上?

目前,我可以在值之间使用 | 或//或任何内容,但为了便于阅读,我希望将值放在单独的行上。

我的代码(是的,我知道它是旧的(:

//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 . "rn";
$body_message .= 'Email: ' . $email . "rn";
$body_message .= 'Phone: ' . $phone . "rn";
$body_message .= 'Address: ' . $address . "rn";
$body_message .= 'Boat Purchase Date: ' . $purchase . "rn";
$body_message .= 'Message: ' . $message . "rn";
$body_message .= 'Trailer Option: ' . $trailer . "rn";
$body_message .= 'Motor Option: ' . $motor . "rn";
$body_message .= 'Options: ' . $options . "rn";
$check_msg;
// Construct headers of the message
$headers = 'From: ' . $email . "rn";
$headers .= 'Reply-To: ' . $email . "rn";
$mail_sent = mail($mail_to, $subject, $body_message, $headers);
if ($mail_sent == true){ 
header('location: http://www.seaboss.co.nz/index.php/thanks');
exit;
}
?>

我假设发布的复选框值数组看起来像这样 - 其中每个值(此处:2、3、7(来自名为">checkbox1[]"的"复选框"类型的输入的"value">属性:

Array
(
[0] =>  > 2
[1] =>  > 3
[2] =>  > 7
)

也就是说,最好将数组分配与数组的格式分开以进行显示。最后一步将使用新的行字符串("\r"( 连接数组元素 - 导致在单独的行上显示每个数组值。

// Assignation of the posted array.    
$options = $_POST['checkboxes1'];
// Formatting for display.
$body_message .= 'Options:rn' . implode('rn', $options) . 'rn';

如果您还想在每个数组值前面附加一个符号(例如">"(,则必须应用中间前缀步骤:

// Assignation of the posted array.    
$options = $_POST['checkboxes1'];
// Prefixing array values.
foreach ($options as &$value) {
$value = ' > ' . $value;
}
// Formatting for display.
$body_message .= 'Options:rn' . implode('rn', $options) . 'rn';

关于前缀步骤,请注意使用参考符号("&"(。因此,每个数组值都直接修改,通过引用分配。更多详情请见

  • 福奇构造和
  • 参考资料解释

然后,生成的电子邮件文本将如下所示:

Options:
> 2
> 3
> 7

以及使用漂亮模板构建电子邮件的建议:邮戳模板项目。

您可以使用PHP_EOL转到下一行。使用此PHP_EOL将有助于解决与使用 Linux 或 Windows 平台相关的问题。 例如:

$body_message = 'Name: ' . $name . PHP_EOL; $body_message .= 'Email: ' . $email . PHP_EOL;

最新更新