以下代码会在用户提交时生成HTML电子邮件。电子邮件已成功发送,但我遇到的问题是显示包含一个或多个值的数组内容。
最初,用户单击一个或多个复选框以获取容器编号。您将在下面看到containerNumber的变量,该变量位于数组中。用户还手动输入卡车司机电子邮件,该电子邮件也变成了PHP变量。用户名存储在会话中,也会转换为另一个PHP变量。
<?php
$containerArray = explode(',', $_POST['containerNumber']);
$trucker_email = mysql_real_escape_string(stripslashes($_POST['trucker_email']));
$username = $_SESSION['username'];
现在我为电子邮件生成变量:
$to = $trucker_email;
$subject = 'Container Numbers';
$headers = "From: " . $username . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$message = "You have received a message with Containter Numbers:<br />";
$message .= "Greetings " . stripslashes($_POST['trucker_name']) . "<br />";
现在,这是我努力工作的部分。这是HTML表,它应该在它自己的表格单元格中显示每个容器编号:
$message .= '<html><body>';
$message .= '<table rules="all" style="border-color: #62c462" cellpadding="10">';
$message .= '<tr style="background: #8DBFCF;"><th>Containers</th></tr>';
$message .= print_r($containerArray, true);
$message .= '</table>';
$message .= '<body></html>';
@mail($to, $subject, $message, $headers);
?>
我发送电子邮件给自己,当我查看它时,数组值显示如下:
ContainersArray ( [0] => CMAU123456 [1] => TRLU1234567 )
这不是我希望它显示的方式。我知道我必须使用foreach循环才能使其正常工作,但我不确定如何或从何处开始循环。
请帮忙。
答案 0 :(得分:5)
替换:
$message .= print_r($containerArray, true);
使用:
foreach($containerArray as $container) {
$messages .= sprintf('<tr><td>%s</td></tr>', $container);
}
答案 1 :(得分:2)
$message .= '<html><body>';
$message .= '<table rules="all" style="border-color: #62c462" cellpadding="10">';
$message .= '<tr style="background: #8DBFCF;"><th>Containers</th></tr>';
foreach($ContainersArray as $key=>$val) {
$message .= '<tr><td>'.$val.'</td></tr>';
}
$message .= '</table>';
$message .= '<body></html>';
输出(网页上的布局显示有一些风格,但我不是在这里复制)。
容器
CMAU123456
TRLU1234567
答案 2 :(得分:0)
试试这个:
$message .= '<tr style="background: #8DBFCF;"><th>Containers</th></tr>';
foreach ($containerArray as $key => $value) {
# code... here action to display each value. exemple:
$message .= '<tr><td>'.$value.'</td></tr>';
}
$message .= '</table>';
$message .= '<body></html>';